@flamingo-stack/openframe-frontend-core 0.0.173 → 0.0.174

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5406,17 +5406,18 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5406
5406
  }, ref) => {
5407
5407
  const { scrollRef, contentRef, scrollToBottom } = _usesticktobottom.useStickToBottom.call(void 0, {
5408
5408
  resize: "smooth",
5409
- initial: false
5409
+ initial: "instant"
5410
5410
  });
5411
- const sentinelRef = _react.useRef.call(void 0, null);
5411
+ const [scrollEl, setScrollEl] = _react.useState.call(void 0, null);
5412
+ const [sentinelEl, setSentinelEl] = _react.useState.call(void 0, null);
5412
5413
  const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
5413
5414
  onLoadMoreRef.current = onLoadMore;
5414
5415
  const isFetchingRef = _react.useRef.call(void 0, isFetchingNextPage);
5415
5416
  isFetchingRef.current = isFetchingNextPage;
5416
5417
  const prevRenderRef = _react.useRef.call(void 0, { dialogId: void 0, messageCount: 0, lastMessageId: void 0 });
5417
5418
  const prependRef = _react.useRef.call(void 0, { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 });
5418
- _react.useEffect.call(void 0, () => {
5419
- if (!autoScroll) return;
5419
+ _react.useLayoutEffect.call(void 0, () => {
5420
+ if (!autoScroll || !scrollEl) return;
5420
5421
  const dialogChanged = dialogId !== prevRenderRef.current.dialogId;
5421
5422
  const prevCount = prevRenderRef.current.messageCount;
5422
5423
  const newCount = messages.length;
@@ -5437,9 +5438,9 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5437
5438
  void scrollToBottom({ animation: "instant", ignoreEscapes: true });
5438
5439
  }
5439
5440
  }
5440
- }, [autoScroll, messages, dialogId, scrollToBottom]);
5441
+ }, [autoScroll, messages, dialogId, scrollToBottom, scrollEl]);
5441
5442
  _react.useLayoutEffect.call(void 0, () => {
5442
- const el = scrollRef.current;
5443
+ const el = scrollEl;
5443
5444
  if (!el) {
5444
5445
  prependRef.current = { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 };
5445
5446
  return;
@@ -5467,24 +5468,35 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5467
5468
  if (currentFirstContent !== prependRef.current.firstMessageContent) {
5468
5469
  prependRef.current.firstMessageContent = currentFirstContent;
5469
5470
  }
5470
- }, [messages, scrollRef]);
5471
+ }, [messages, scrollEl]);
5471
5472
  _react.useEffect.call(void 0, () => {
5472
- const scrollContainer = scrollRef.current;
5473
- const sentinelElement = sentinelRef.current;
5474
- if (!scrollContainer || !sentinelElement || !hasNextPage) return;
5475
- const observer = new IntersectionObserver(
5476
- (entries) => {
5477
- const entry = entries[0];
5478
- if (!entry) return;
5479
- if (entry.isIntersecting && !isFetchingRef.current) {
5480
- _optionalChain([onLoadMoreRef, 'access', _114 => _114.current, 'optionalCall', _115 => _115()]);
5481
- }
5482
- },
5483
- { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
5484
- );
5485
- observer.observe(sentinelElement);
5486
- return () => observer.disconnect();
5487
- }, [hasNextPage, scrollRef]);
5473
+ const scrollContainer = scrollEl;
5474
+ const sentinelElement = sentinelEl;
5475
+ if (!scrollContainer || !hasNextPage) return;
5476
+ const tryLoad = () => {
5477
+ if (isFetchingRef.current) return;
5478
+ _optionalChain([onLoadMoreRef, 'access', _114 => _114.current, 'optionalCall', _115 => _115()]);
5479
+ };
5480
+ let observer;
5481
+ if (sentinelElement) {
5482
+ observer = new IntersectionObserver(
5483
+ (entries) => {
5484
+ const entry = entries[0];
5485
+ if (_optionalChain([entry, 'optionalAccess', _116 => _116.isIntersecting])) tryLoad();
5486
+ },
5487
+ { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
5488
+ );
5489
+ observer.observe(sentinelElement);
5490
+ }
5491
+ const onScroll = () => {
5492
+ if (scrollContainer.scrollTop <= 200) tryLoad();
5493
+ };
5494
+ scrollContainer.addEventListener("scroll", onScroll, { passive: true });
5495
+ return () => {
5496
+ _optionalChain([observer, 'optionalAccess', _117 => _117.disconnect, 'call', _118 => _118()]);
5497
+ scrollContainer.removeEventListener("scroll", onScroll);
5498
+ };
5499
+ }, [hasNextPage, scrollEl, sentinelEl, messages.length]);
5488
5500
  _react.useImperativeHandle.call(void 0, ref, () => scrollRef.current, [scrollRef]);
5489
5501
  const showLoader = useDelayedFlag(isLoading, { delay: 200, minDuration: 400 });
5490
5502
  if (showLoader) {
@@ -5499,6 +5511,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5499
5511
  }
5500
5512
  const setScrollRef = (el) => {
5501
5513
  scrollRef(el);
5514
+ setScrollEl(el);
5502
5515
  };
5503
5516
  const setContentRef = (el) => {
5504
5517
  contentRef(el);
@@ -5524,7 +5537,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5524
5537
  ),
5525
5538
  style: { minHeight: "100%" },
5526
5539
  children: [
5527
- hasNextPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-px" }),
5540
+ hasNextPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setSentinelEl, className: "h-px" }),
5528
5541
  isFetchingNextPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5529
5542
  "div",
5530
5543
  {
@@ -5643,7 +5656,7 @@ var ChatTicketItem = React15.forwardRef(
5643
5656
  {
5644
5657
  ref,
5645
5658
  type: "button",
5646
- onClick: () => _optionalChain([onClick, 'optionalCall', _116 => _116(ticket.id)]),
5659
+ onClick: () => _optionalChain([onClick, 'optionalCall', _119 => _119(ticket.id)]),
5647
5660
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5648
5661
  "flex items-center gap-4 w-full h-20 px-4",
5649
5662
  "bg-ods-card border-b border-ods-border",
@@ -5991,8 +6004,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
5991
6004
  var DialogListItem = _react.forwardRef.call(void 0,
5992
6005
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
5993
6006
  const handleClick = (e) => {
5994
- _optionalChain([onDialogSelect, 'optionalCall', _117 => _117(dialog.id)]);
5995
- _optionalChain([onClick, 'optionalCall', _118 => _118(e)]);
6007
+ _optionalChain([onDialogSelect, 'optionalCall', _120 => _120(dialog.id)]);
6008
+ _optionalChain([onClick, 'optionalCall', _121 => _121(e)]);
5996
6009
  };
5997
6010
  const formatTimestamp2 = (timestamp) => {
5998
6011
  if (!timestamp) return "";
@@ -6051,7 +6064,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6051
6064
  (entries) => {
6052
6065
  const [entry] = entries;
6053
6066
  if (entry.isIntersecting && !isFetchingRef.current) {
6054
- _optionalChain([onLoadMoreRef, 'access', _119 => _119.current, 'optionalCall', _120 => _120()]);
6067
+ _optionalChain([onLoadMoreRef, 'access', _122 => _122.current, 'optionalCall', _123 => _123()]);
6055
6068
  }
6056
6069
  },
6057
6070
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -6469,7 +6482,7 @@ function useNatsDialogSubscription({
6469
6482
  reconnectionBackoffRef.current = reconnectionBackoff;
6470
6483
  }, [reconnectionBackoff]);
6471
6484
  const acquireClient = _react.useCallback.call(void 0, (url) => {
6472
- if (_optionalChain([shared, 'optionalAccess', _121 => _121.wsUrl]) !== url) {
6485
+ if (_optionalChain([shared, 'optionalAccess', _124 => _124.wsUrl]) !== url) {
6473
6486
  if (shared) {
6474
6487
  shared.closeTimer && clearTimeout(shared.closeTimer);
6475
6488
  const old = shared;
@@ -6560,7 +6573,7 @@ function useNatsDialogSubscription({
6560
6573
  if (closed) return;
6561
6574
  if (shared !== sharedConn) return;
6562
6575
  try {
6563
- await _optionalChain([onBeforeReconnectRef, 'access', _122 => _122.current, 'optionalCall', _123 => _123()]);
6576
+ await _optionalChain([onBeforeReconnectRef, 'access', _125 => _125.current, 'optionalCall', _126 => _126()]);
6564
6577
  } catch (e7) {
6565
6578
  }
6566
6579
  if (closed) return;
@@ -6593,22 +6606,22 @@ function useNatsDialogSubscription({
6593
6606
  }
6594
6607
  hadConnectionBeforeRef.current = true;
6595
6608
  retryAttempt = 0;
6596
- _optionalChain([onConnectRef, 'access', _124 => _124.current, 'optionalCall', _125 => _125()]);
6609
+ _optionalChain([onConnectRef, 'access', _127 => _127.current, 'optionalCall', _128 => _128()]);
6597
6610
  }
6598
6611
  if (disconnected) {
6599
6612
  setIsConnected(false);
6600
6613
  setIsSubscribed(false);
6601
6614
  subscriptionRefs.current.forEach((sub) => {
6602
6615
  try {
6603
- _optionalChain([sub, 'optionalAccess', _126 => _126.unsubscribe, 'call', _127 => _127()]);
6616
+ _optionalChain([sub, 'optionalAccess', _129 => _129.unsubscribe, 'call', _130 => _130()]);
6604
6617
  } catch (e9) {
6605
6618
  }
6606
6619
  });
6607
6620
  subscriptionRefs.current.clear();
6608
6621
  lastSubscribedDialogIdRef.current = null;
6609
- _optionalChain([abortControllerRef, 'access', _128 => _128.current, 'optionalAccess', _129 => _129.abort, 'call', _130 => _130()]);
6622
+ _optionalChain([abortControllerRef, 'access', _131 => _131.current, 'optionalAccess', _132 => _132.abort, 'call', _133 => _133()]);
6610
6623
  abortControllerRef.current = null;
6611
- _optionalChain([onDisconnectRef, 'access', _131 => _131.current, 'optionalCall', _132 => _132()]);
6624
+ _optionalChain([onDisconnectRef, 'access', _134 => _134.current, 'optionalCall', _135 => _135()]);
6612
6625
  scheduleRetry();
6613
6626
  }
6614
6627
  });
@@ -6624,7 +6637,7 @@ function useNatsDialogSubscription({
6624
6637
  sharedConn.connectPromise = null;
6625
6638
  if (!closed) {
6626
6639
  setIsConnected(false);
6627
- _optionalChain([onDisconnectRef, 'access', _133 => _133.current, 'optionalCall', _134 => _134()]);
6640
+ _optionalChain([onDisconnectRef, 'access', _136 => _136.current, 'optionalCall', _137 => _137()]);
6628
6641
  scheduleRetry();
6629
6642
  }
6630
6643
  }
@@ -6640,7 +6653,7 @@ function useNatsDialogSubscription({
6640
6653
  }
6641
6654
  subscriptionRefs.current.forEach((sub) => {
6642
6655
  try {
6643
- _optionalChain([sub, 'optionalAccess', _135 => _135.unsubscribe, 'call', _136 => _136()]);
6656
+ _optionalChain([sub, 'optionalAccess', _138 => _138.unsubscribe, 'call', _139 => _139()]);
6644
6657
  } catch (e11) {
6645
6658
  }
6646
6659
  });
@@ -6668,13 +6681,13 @@ function useNatsDialogSubscription({
6668
6681
  setIsSubscribed(false);
6669
6682
  subscriptionRefs.current.forEach((sub) => {
6670
6683
  try {
6671
- _optionalChain([sub, 'optionalAccess', _137 => _137.unsubscribe, 'call', _138 => _138()]);
6684
+ _optionalChain([sub, 'optionalAccess', _140 => _140.unsubscribe, 'call', _141 => _141()]);
6672
6685
  } catch (e12) {
6673
6686
  }
6674
6687
  });
6675
6688
  subscriptionRefs.current.clear();
6676
6689
  lastSubscribedDialogIdRef.current = null;
6677
- _optionalChain([abortControllerRef, 'access', _139 => _139.current, 'optionalAccess', _140 => _140.abort, 'call', _141 => _141()]);
6690
+ _optionalChain([abortControllerRef, 'access', _142 => _142.current, 'optionalAccess', _143 => _143.abort, 'call', _144 => _144()]);
6678
6691
  abortControllerRef.current = null;
6679
6692
  }
6680
6693
  return;
@@ -6686,12 +6699,12 @@ function useNatsDialogSubscription({
6686
6699
  if (subscriptionRefs.current.size > 0) {
6687
6700
  subscriptionRefs.current.forEach((sub) => {
6688
6701
  try {
6689
- _optionalChain([sub, 'optionalAccess', _142 => _142.unsubscribe, 'call', _143 => _143()]);
6702
+ _optionalChain([sub, 'optionalAccess', _145 => _145.unsubscribe, 'call', _146 => _146()]);
6690
6703
  } catch (e13) {
6691
6704
  }
6692
6705
  });
6693
6706
  subscriptionRefs.current.clear();
6694
- _optionalChain([abortControllerRef, 'access', _144 => _144.current, 'optionalAccess', _145 => _145.abort, 'call', _146 => _146()]);
6707
+ _optionalChain([abortControllerRef, 'access', _147 => _147.current, 'optionalAccess', _148 => _148.abort, 'call', _149 => _149()]);
6695
6708
  }
6696
6709
  abortControllerRef.current = new AbortController();
6697
6710
  const abort = abortControllerRef.current;
@@ -6723,7 +6736,7 @@ function useNatsDialogSubscription({
6723
6736
  });
6724
6737
  lastSubscribedDialogIdRef.current = dialogId;
6725
6738
  setIsSubscribed(true);
6726
- _optionalChain([onSubscribedRef, 'access', _147 => _147.current, 'optionalCall', _148 => _148()]);
6739
+ _optionalChain([onSubscribedRef, 'access', _150 => _150.current, 'optionalCall', _151 => _151()]);
6727
6740
  };
6728
6741
  if (isConnectedRef.current) {
6729
6742
  createSubscriptions();
@@ -6733,7 +6746,7 @@ function useNatsDialogSubscription({
6733
6746
  abort.abort();
6734
6747
  subscriptionRefs.current.forEach((sub) => {
6735
6748
  try {
6736
- _optionalChain([sub, 'optionalAccess', _149 => _149.unsubscribe, 'call', _150 => _150()]);
6749
+ _optionalChain([sub, 'optionalAccess', _152 => _152.unsubscribe, 'call', _153 => _153()]);
6737
6750
  } catch (e15) {
6738
6751
  }
6739
6752
  });
@@ -6774,7 +6787,7 @@ function useNatsDialogSubscription({
6774
6787
  });
6775
6788
  lastSubscribedDialogIdRef.current = dialogId2;
6776
6789
  setIsSubscribed(true);
6777
- _optionalChain([onSubscribedRef, 'access', _151 => _151.current, 'optionalCall', _152 => _152()]);
6790
+ _optionalChain([onSubscribedRef, 'access', _154 => _154.current, 'optionalCall', _155 => _155()]);
6778
6791
  } else if (subscriptionRefs.current.size > 0) {
6779
6792
  setIsSubscribed(true);
6780
6793
  }
@@ -6782,10 +6795,10 @@ function useNatsDialogSubscription({
6782
6795
  return { isConnected, isSubscribed, reconnectionCount };
6783
6796
  }
6784
6797
  function buildNatsWsUrl(apiBaseUrl, options) {
6785
- const path = _optionalChain([options, 'optionalAccess', _153 => _153.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
6798
+ const path = _optionalChain([options, 'optionalAccess', _156 => _156.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
6786
6799
  const u = new URL(path, apiBaseUrl);
6787
6800
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
6788
- if (_optionalChain([options, 'optionalAccess', _154 => _154.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _155 => _155.token])) {
6801
+ if (_optionalChain([options, 'optionalAccess', _157 => _157.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _158 => _158.token])) {
6789
6802
  u.searchParams.set("authorization", options.token);
6790
6803
  }
6791
6804
  return u.toString();
@@ -7096,7 +7109,7 @@ var MessageSegmentAccumulator = class {
7096
7109
  type: "tool_execution",
7097
7110
  data: {
7098
7111
  ...toolData,
7099
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _156 => _156.parameters])
7112
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _159 => _159.parameters])
7100
7113
  }
7101
7114
  };
7102
7115
  if (existingIndex !== -1) {
@@ -7120,8 +7133,8 @@ var MessageSegmentAccumulator = class {
7120
7133
  if (seg.type !== "approval_batch") return seg;
7121
7134
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
7122
7135
  if (!hasCall) return seg;
7123
- const prev = _optionalChain([seg, 'access', _157 => _157.data, 'access', _158 => _158.executions, 'optionalAccess', _159 => _159[execId]]);
7124
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _160 => _160.result]), success: _optionalChain([prev, 'optionalAccess', _161 => _161.success]) };
7136
+ const prev = _optionalChain([seg, 'access', _160 => _160.data, 'access', _161 => _161.executions, 'optionalAccess', _162 => _162[execId]]);
7137
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _163 => _163.result]), success: _optionalChain([prev, 'optionalAccess', _164 => _164.success]) };
7125
7138
  matched = true;
7126
7139
  return {
7127
7140
  ...seg,
@@ -7217,10 +7230,10 @@ var MessageSegmentAccumulator = class {
7217
7230
  const segment = {
7218
7231
  type: "approval_request",
7219
7232
  data: {
7220
- command: _optionalChain([pendingApproval, 'optionalAccess', _162 => _162.command]) || "",
7221
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _163 => _163.explanation]),
7233
+ command: _optionalChain([pendingApproval, 'optionalAccess', _165 => _165.command]) || "",
7234
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _166 => _166.explanation]),
7222
7235
  requestId,
7223
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _164 => _164.approvalType]) || approvalType
7236
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _167 => _167.approvalType]) || approvalType
7224
7237
  },
7225
7238
  status,
7226
7239
  onApprove: this.callbacks.onApprove,
@@ -7408,7 +7421,7 @@ function useRealtimeChunkProcessor(options) {
7408
7421
  if (initialState.escalatedApprovals) {
7409
7422
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
7410
7423
  initialState.escalatedApprovals.forEach((data, requestId) => {
7411
- _optionalChain([callbacks, 'access', _165 => _165.onEscalatedApproval, 'optionalCall', _166 => _166(requestId, data)]);
7424
+ _optionalChain([callbacks, 'access', _168 => _168.onEscalatedApproval, 'optionalCall', _169 => _169(requestId, data)]);
7412
7425
  });
7413
7426
  }
7414
7427
  hasInitializedWithData.current = true;
@@ -7427,30 +7440,30 @@ function useRealtimeChunkProcessor(options) {
7427
7440
  switch (action.action) {
7428
7441
  case "message_start":
7429
7442
  isInStreamRef.current = true;
7430
- _optionalChain([callbacks, 'access', _167 => _167.onStreamStart, 'optionalCall', _168 => _168()]);
7443
+ _optionalChain([callbacks, 'access', _170 => _170.onStreamStart, 'optionalCall', _171 => _171()]);
7431
7444
  accumulator.resetSegments();
7432
7445
  break;
7433
7446
  case "message_end":
7434
7447
  isInStreamRef.current = false;
7435
- _optionalChain([callbacks, 'access', _169 => _169.onStreamEnd, 'optionalCall', _170 => _170()]);
7448
+ _optionalChain([callbacks, 'access', _172 => _172.onStreamEnd, 'optionalCall', _173 => _173()]);
7436
7449
  accumulator.resetSegments();
7437
7450
  break;
7438
7451
  case "metadata":
7439
- _optionalChain([callbacks, 'access', _171 => _171.onMetadata, 'optionalCall', _172 => _172(action)]);
7452
+ _optionalChain([callbacks, 'access', _174 => _174.onMetadata, 'optionalCall', _175 => _175(action)]);
7440
7453
  break;
7441
7454
  case "text": {
7442
7455
  const segments = accumulator.appendText(action.text);
7443
- _optionalChain([callbacks, 'access', _173 => _173.onSegmentsUpdate, 'optionalCall', _174 => _174(segments)]);
7456
+ _optionalChain([callbacks, 'access', _176 => _176.onSegmentsUpdate, 'optionalCall', _177 => _177(segments)]);
7444
7457
  break;
7445
7458
  }
7446
7459
  case "thinking": {
7447
7460
  const segments = accumulator.appendThinking(action.text);
7448
- _optionalChain([callbacks, 'access', _175 => _175.onSegmentsUpdate, 'optionalCall', _176 => _176(segments)]);
7461
+ _optionalChain([callbacks, 'access', _178 => _178.onSegmentsUpdate, 'optionalCall', _179 => _179(segments)]);
7449
7462
  break;
7450
7463
  }
7451
7464
  case "tool_execution": {
7452
7465
  const segments = accumulator.addToolExecution(action.segment);
7453
- _optionalChain([callbacks, 'access', _177 => _177.onSegmentsUpdate, 'optionalCall', _178 => _178(segments)]);
7466
+ _optionalChain([callbacks, 'access', _180 => _180.onSegmentsUpdate, 'optionalCall', _181 => _181(segments)]);
7454
7467
  break;
7455
7468
  }
7456
7469
  case "approval_request": {
@@ -7464,10 +7477,10 @@ function useRealtimeChunkProcessor(options) {
7464
7477
  approvalType,
7465
7478
  status
7466
7479
  );
7467
- _optionalChain([callbacks, 'access', _179 => _179.onSegmentsUpdate, 'optionalCall', _180 => _180(segments)]);
7480
+ _optionalChain([callbacks, 'access', _182 => _182.onSegmentsUpdate, 'optionalCall', _183 => _183(segments)]);
7468
7481
  } else {
7469
7482
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
7470
- _optionalChain([callbacks, 'access', _181 => _181.onEscalatedApproval, 'optionalCall', _182 => _182(requestId, { command, explanation, approvalType })]);
7483
+ _optionalChain([callbacks, 'access', _184 => _184.onEscalatedApproval, 'optionalCall', _185 => _185(requestId, { command, explanation, approvalType })]);
7471
7484
  }
7472
7485
  break;
7473
7486
  }
@@ -7479,20 +7492,20 @@ function useRealtimeChunkProcessor(options) {
7479
7492
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
7480
7493
  pendingEscalatedRef.current.set(requestId, {
7481
7494
  command: summary,
7482
- explanation: _optionalChain([required, 'optionalAccess', _183 => _183.toolExplanation]),
7495
+ explanation: _optionalChain([required, 'optionalAccess', _186 => _186.toolExplanation]),
7483
7496
  approvalType,
7484
7497
  toolCalls
7485
7498
  });
7486
- _optionalChain([callbacks, 'access', _184 => _184.onEscalatedApproval, 'optionalCall', _185 => _185(requestId, {
7499
+ _optionalChain([callbacks, 'access', _187 => _187.onEscalatedApproval, 'optionalCall', _188 => _188(requestId, {
7487
7500
  command: summary,
7488
- explanation: _optionalChain([required, 'optionalAccess', _186 => _186.toolExplanation]),
7501
+ explanation: _optionalChain([required, 'optionalAccess', _189 => _189.toolExplanation]),
7489
7502
  approvalType
7490
7503
  })]);
7491
7504
  break;
7492
7505
  }
7493
7506
  if (batchApprovalsEnabled) {
7494
7507
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
7495
- _optionalChain([callbacks, 'access', _187 => _187.onSegmentsUpdate, 'optionalCall', _188 => _188(segments2)]);
7508
+ _optionalChain([callbacks, 'access', _190 => _190.onSegmentsUpdate, 'optionalCall', _191 => _191(segments2)]);
7496
7509
  break;
7497
7510
  }
7498
7511
  let segments = accumulator.getSegments();
@@ -7506,7 +7519,7 @@ function useRealtimeChunkProcessor(options) {
7506
7519
  status
7507
7520
  );
7508
7521
  }
7509
- _optionalChain([callbacks, 'access', _189 => _189.onSegmentsUpdate, 'optionalCall', _190 => _190(segments)]);
7522
+ _optionalChain([callbacks, 'access', _192 => _192.onSegmentsUpdate, 'optionalCall', _193 => _193(segments)]);
7510
7523
  break;
7511
7524
  }
7512
7525
  case "approval_result": {
@@ -7515,7 +7528,7 @@ function useRealtimeChunkProcessor(options) {
7515
7528
  const status = approved ? "approved" : "rejected";
7516
7529
  if (escalatedData) {
7517
7530
  pendingEscalatedRef.current.delete(requestId);
7518
- _optionalChain([callbacks, 'access', _191 => _191.onEscalatedApprovalResult, 'optionalCall', _192 => _192(requestId, approved, {
7531
+ _optionalChain([callbacks, 'access', _194 => _194.onEscalatedApprovalResult, 'optionalCall', _195 => _195(requestId, approved, {
7519
7532
  command: escalatedData.command,
7520
7533
  explanation: escalatedData.explanation,
7521
7534
  approvalType: escalatedData.approvalType
@@ -7528,7 +7541,7 @@ function useRealtimeChunkProcessor(options) {
7528
7541
  escalatedData.toolCalls,
7529
7542
  status
7530
7543
  );
7531
- _optionalChain([callbacks, 'access', _193 => _193.onSegmentsUpdate, 'optionalCall', _194 => _194(segments)]);
7544
+ _optionalChain([callbacks, 'access', _196 => _196.onSegmentsUpdate, 'optionalCall', _197 => _197(segments)]);
7532
7545
  } else {
7533
7546
  let segments = accumulator.getSegments();
7534
7547
  for (const call of escalatedData.toolCalls) {
@@ -7541,7 +7554,7 @@ function useRealtimeChunkProcessor(options) {
7541
7554
  status
7542
7555
  );
7543
7556
  }
7544
- _optionalChain([callbacks, 'access', _195 => _195.onSegmentsUpdate, 'optionalCall', _196 => _196(segments)]);
7557
+ _optionalChain([callbacks, 'access', _198 => _198.onSegmentsUpdate, 'optionalCall', _199 => _199(segments)]);
7545
7558
  }
7546
7559
  } else {
7547
7560
  const segments = accumulator.addApprovalRequest(
@@ -7551,63 +7564,63 @@ function useRealtimeChunkProcessor(options) {
7551
7564
  escalatedData.approvalType,
7552
7565
  status
7553
7566
  );
7554
- _optionalChain([callbacks, 'access', _197 => _197.onSegmentsUpdate, 'optionalCall', _198 => _198(segments)]);
7567
+ _optionalChain([callbacks, 'access', _200 => _200.onSegmentsUpdate, 'optionalCall', _201 => _201(segments)]);
7555
7568
  }
7556
7569
  } else {
7557
7570
  const segments = accumulator.updateApprovalStatus(requestId, status);
7558
- _optionalChain([callbacks, 'access', _199 => _199.onSegmentsUpdate, 'optionalCall', _200 => _200(segments)]);
7571
+ _optionalChain([callbacks, 'access', _202 => _202.onSegmentsUpdate, 'optionalCall', _203 => _203(segments)]);
7559
7572
  }
7560
7573
  void approvalType;
7561
7574
  break;
7562
7575
  }
7563
7576
  case "error": {
7564
7577
  let message;
7565
- if ("details" in action && _optionalChain([action, 'optionalAccess', _201 => _201.details])) {
7578
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _204 => _204.details])) {
7566
7579
  try {
7567
- message = _optionalChain([JSON, 'access', _202 => _202.parse, 'call', _203 => _203(action.details), 'optionalAccess', _204 => _204.error, 'optionalAccess', _205 => _205.message]);
7580
+ message = _optionalChain([JSON, 'access', _205 => _205.parse, 'call', _206 => _206(action.details), 'optionalAccess', _207 => _207.error, 'optionalAccess', _208 => _208.message]);
7568
7581
  } catch (e17) {
7569
7582
  message = action.details;
7570
7583
  }
7571
7584
  }
7572
7585
  const segments = accumulator.addError(action.error, message);
7573
- _optionalChain([callbacks, 'access', _206 => _206.onSegmentsUpdate, 'optionalCall', _207 => _207(segments)]);
7574
- _optionalChain([callbacks, 'access', _208 => _208.onError, 'optionalCall', _209 => _209(action.error, message)]);
7586
+ _optionalChain([callbacks, 'access', _209 => _209.onSegmentsUpdate, 'optionalCall', _210 => _210(segments)]);
7587
+ _optionalChain([callbacks, 'access', _211 => _211.onError, 'optionalCall', _212 => _212(action.error, message)]);
7575
7588
  break;
7576
7589
  }
7577
7590
  case "system": {
7578
- _optionalChain([callbacks, 'access', _210 => _210.onSystemMessage, 'optionalCall', _211 => _211(action.text)]);
7591
+ _optionalChain([callbacks, 'access', _213 => _213.onSystemMessage, 'optionalCall', _214 => _214(action.text)]);
7579
7592
  break;
7580
7593
  }
7581
7594
  case "direct_message": {
7582
- _optionalChain([callbacks, 'access', _212 => _212.onDirectMessage, 'optionalCall', _213 => _213(action.text, {
7595
+ _optionalChain([callbacks, 'access', _215 => _215.onDirectMessage, 'optionalCall', _216 => _216(action.text, {
7583
7596
  ownerType: action.ownerType,
7584
7597
  displayName: action.displayName
7585
7598
  })]);
7586
7599
  break;
7587
7600
  }
7588
7601
  case "message_request":
7589
- _optionalChain([callbacks, 'access', _214 => _214.onUserMessage, 'optionalCall', _215 => _215(action.text, {
7602
+ _optionalChain([callbacks, 'access', _217 => _217.onUserMessage, 'optionalCall', _218 => _218(action.text, {
7590
7603
  ownerType: action.ownerType,
7591
7604
  displayName: action.displayName
7592
7605
  })]);
7593
7606
  break;
7594
7607
  case "token_usage":
7595
- _optionalChain([callbacks, 'access', _216 => _216.onTokenUsage, 'optionalCall', _217 => _217(action.data)]);
7608
+ _optionalChain([callbacks, 'access', _219 => _219.onTokenUsage, 'optionalCall', _220 => _220(action.data)]);
7596
7609
  break;
7597
7610
  case "context_compaction_start": {
7598
7611
  const standalone = !isInStreamRef.current;
7599
7612
  const segments = accumulator.addContextCompaction();
7600
- _optionalChain([callbacks, 'access', _218 => _218.onSegmentsUpdate, 'optionalCall', _219 => _219(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7613
+ _optionalChain([callbacks, 'access', _221 => _221.onSegmentsUpdate, 'optionalCall', _222 => _222(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7601
7614
  break;
7602
7615
  }
7603
7616
  case "context_compaction_end": {
7604
7617
  const standalone = !isInStreamRef.current;
7605
7618
  const segments = accumulator.completeContextCompaction(action.summary);
7606
- _optionalChain([callbacks, 'access', _220 => _220.onSegmentsUpdate, 'optionalCall', _221 => _221(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7619
+ _optionalChain([callbacks, 'access', _223 => _223.onSegmentsUpdate, 'optionalCall', _224 => _224(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7607
7620
  break;
7608
7621
  }
7609
7622
  case "dialog_closed":
7610
- _optionalChain([callbacks, 'access', _222 => _222.onDialogClosed, 'optionalCall', _223 => _223()]);
7623
+ _optionalChain([callbacks, 'access', _225 => _225.onDialogClosed, 'optionalCall', _226 => _226()]);
7611
7624
  break;
7612
7625
  default:
7613
7626
  break;
@@ -7643,12 +7656,12 @@ function useRealtimeChunkProcessor(options) {
7643
7656
 
7644
7657
  // src/components/chat/utils/process-historical-messages.ts
7645
7658
  function getOwnerDisplayName(owner) {
7646
- if (_optionalChain([owner, 'optionalAccess', _224 => _224.type]) === OWNER_TYPE.ADMIN && owner.user) {
7659
+ if (_optionalChain([owner, 'optionalAccess', _227 => _227.type]) === OWNER_TYPE.ADMIN && owner.user) {
7647
7660
  const { firstName, lastName } = owner.user;
7648
7661
  const name = [firstName, lastName].filter(Boolean).join(" ");
7649
7662
  if (name) return name;
7650
7663
  }
7651
- return _optionalChain([owner, 'optionalAccess', _225 => _225.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
7664
+ return _optionalChain([owner, 'optionalAccess', _228 => _228.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
7652
7665
  }
7653
7666
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
7654
7667
  messageDataArray.forEach((data) => {
@@ -7711,10 +7724,10 @@ function processHistoricalMessages(messages, options = {}) {
7711
7724
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
7712
7725
  return;
7713
7726
  }
7714
- const isUserMessage = _optionalChain([msg, 'access', _226 => _226.owner, 'optionalAccess', _227 => _227.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _228 => _228.owner, 'optionalAccess', _229 => _229.type]) === OWNER_TYPE.ADMIN;
7727
+ const isUserMessage = _optionalChain([msg, 'access', _229 => _229.owner, 'optionalAccess', _230 => _230.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _231 => _231.owner, 'optionalAccess', _232 => _232.type]) === OWNER_TYPE.ADMIN;
7715
7728
  if (isUserMessage) {
7716
7729
  flushAssistantMessage();
7717
- const userAuthorType = _optionalChain([msg, 'access', _230 => _230.owner, 'optionalAccess', _231 => _231.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7730
+ const userAuthorType = _optionalChain([msg, 'access', _233 => _233.owner, 'optionalAccess', _234 => _234.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7718
7731
  messageDataArray.forEach((data) => {
7719
7732
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
7720
7733
  processedMessages.push({
@@ -7738,7 +7751,7 @@ function processHistoricalMessages(messages, options = {}) {
7738
7751
  });
7739
7752
  const nextMsg = messages[index + 1];
7740
7753
  const isLastMessage = index === messages.length - 1;
7741
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _232 => _232.owner, 'optionalAccess', _233 => _233.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _234 => _234.owner, 'optionalAccess', _235 => _235.type]) === OWNER_TYPE.ADMIN);
7754
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _235 => _235.owner, 'optionalAccess', _236 => _236.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _237 => _237.owner, 'optionalAccess', _238 => _238.type]) === OWNER_TYPE.ADMIN);
7742
7755
  if (isLastMessage || nextIsFromUser) {
7743
7756
  flushAssistantMessage();
7744
7757
  }
@@ -7835,7 +7848,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7835
7848
  });
7836
7849
  }
7837
7850
  } else {
7838
- _optionalChain([escalatedApprovals, 'optionalAccess', _236 => _236.set, 'call', _237 => _237(data.approvalRequestId, {
7851
+ _optionalChain([escalatedApprovals, 'optionalAccess', _239 => _239.set, 'call', _240 => _240(data.approvalRequestId, {
7839
7852
  command: data.command || "",
7840
7853
  explanation: data.explanation,
7841
7854
  approvalType,
@@ -7848,8 +7861,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7848
7861
  if ("approvalRequestId" in data && data.approvalRequestId) {
7849
7862
  const existingStatus = approvalStatuses[data.approvalRequestId];
7850
7863
  const status = existingStatus || (data.approved ? "approved" : "rejected");
7851
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _238 => _238.get, 'call', _239 => _239(data.approvalRequestId)]);
7852
- if (_optionalChain([escalatedData, 'optionalAccess', _240 => _240.toolCalls]) && escalatedData.toolCalls.length > 0) {
7864
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _241 => _241.get, 'call', _242 => _242(data.approvalRequestId)]);
7865
+ if (_optionalChain([escalatedData, 'optionalAccess', _243 => _243.toolCalls]) && escalatedData.toolCalls.length > 0) {
7853
7866
  if (batchApprovalsEnabled) {
7854
7867
  accumulator.addApprovalBatch(
7855
7868
  data.approvalRequestId,
@@ -7869,7 +7882,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7869
7882
  );
7870
7883
  }
7871
7884
  }
7872
- _optionalChain([escalatedApprovals, 'optionalAccess', _241 => _241.delete, 'call', _242 => _242(data.approvalRequestId)]);
7885
+ _optionalChain([escalatedApprovals, 'optionalAccess', _244 => _244.delete, 'call', _245 => _245(data.approvalRequestId)]);
7873
7886
  break;
7874
7887
  }
7875
7888
  if (escalatedData) {
@@ -7878,7 +7891,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7878
7891
  explanation: escalatedData.explanation,
7879
7892
  approvalType: escalatedData.approvalType
7880
7893
  });
7881
- _optionalChain([escalatedApprovals, 'optionalAccess', _243 => _243.delete, 'call', _244 => _244(data.approvalRequestId)]);
7894
+ _optionalChain([escalatedApprovals, 'optionalAccess', _246 => _246.delete, 'call', _247 => _247(data.approvalRequestId)]);
7882
7895
  }
7883
7896
  const before = accumulator.getSegments();
7884
7897
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -7894,9 +7907,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7894
7907
  case MESSAGE_TYPE.ERROR:
7895
7908
  if ("error" in data) {
7896
7909
  let message;
7897
- if ("details" in data && _optionalChain([data, 'optionalAccess', _245 => _245.details])) {
7910
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _248 => _248.details])) {
7898
7911
  try {
7899
- message = _optionalChain([JSON, 'access', _246 => _246.parse, 'call', _247 => _247(data.details), 'optionalAccess', _248 => _248.error, 'optionalAccess', _249 => _249.message]);
7912
+ message = _optionalChain([JSON, 'access', _249 => _249.parse, 'call', _250 => _250(data.details), 'optionalAccess', _251 => _251.error, 'optionalAccess', _252 => _252.message]);
7900
7913
  } catch (e18) {
7901
7914
  message = data.details;
7902
7915
  }
@@ -7979,10 +7992,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
7979
7992
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
7980
7993
  return;
7981
7994
  }
7982
- const isUserMessage = _optionalChain([msg, 'access', _250 => _250.owner, 'optionalAccess', _251 => _251.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _252 => _252.owner, 'optionalAccess', _253 => _253.type]) === OWNER_TYPE.ADMIN;
7995
+ const isUserMessage = _optionalChain([msg, 'access', _253 => _253.owner, 'optionalAccess', _254 => _254.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _255 => _255.owner, 'optionalAccess', _256 => _256.type]) === OWNER_TYPE.ADMIN;
7983
7996
  if (isUserMessage) {
7984
7997
  flushAssistantMessage();
7985
- const userAuthorType = _optionalChain([msg, 'access', _254 => _254.owner, 'optionalAccess', _255 => _255.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7998
+ const userAuthorType = _optionalChain([msg, 'access', _257 => _257.owner, 'optionalAccess', _258 => _258.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7986
7999
  messageDataArray.forEach((data) => {
7987
8000
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
7988
8001
  processedMessages.push({
@@ -8006,7 +8019,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8006
8019
  });
8007
8020
  const nextMsg = messages[index + 1];
8008
8021
  const isLastMessage = index === messages.length - 1;
8009
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _256 => _256.owner, 'optionalAccess', _257 => _257.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _258 => _258.owner, 'optionalAccess', _259 => _259.type]) === OWNER_TYPE.ADMIN);
8022
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _259 => _259.owner, 'optionalAccess', _260 => _260.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _261 => _261.owner, 'optionalAccess', _262 => _262.type]) === OWNER_TYPE.ADMIN);
8010
8023
  if (isLastMessage || nextIsFromUser) {
8011
8024
  flushAssistantMessage();
8012
8025
  }
@@ -8065,7 +8078,7 @@ function extractIncompleteMessageState(lastMessage) {
8065
8078
  break;
8066
8079
  case "approval_batch": {
8067
8080
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
8068
- (c) => _optionalChain([segment, 'access', _260 => _260.data, 'access', _261 => _261.executions, 'optionalAccess', _262 => _262[c.toolExecutionRequestId], 'optionalAccess', _263 => _263.status]) === "done"
8081
+ (c) => _optionalChain([segment, 'access', _263 => _263.data, 'access', _264 => _264.executions, 'optionalAccess', _265 => _265[c.toolExecutionRequestId], 'optionalAccess', _266 => _266.status]) === "done"
8069
8082
  );
8070
8083
  if (segment.status !== "rejected" && !allDone) {
8071
8084
  hasIncompleteState = true;
@@ -8227,7 +8240,7 @@ function Header({ config, platform }) {
8227
8240
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8228
8241
  "flex justify-start w-full",
8229
8242
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
8230
- index < (_nullishCoalesce(_optionalChain([item, 'access', _264 => _264.children, 'optionalAccess', _265 => _265.length]), () => ( 0))) - 1 && "mb-1",
8243
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _267 => _267.children, 'optionalAccess', _268 => _268.length]), () => ( 0))) - 1 && "mb-1",
8231
8244
  "text-ods-text-primary",
8232
8245
  // All dropdown items use primary text color
8233
8246
  child.isActive && "bg-ods-bg-hover"
@@ -8319,7 +8332,7 @@ function Header({ config, platform }) {
8319
8332
  style: config.style,
8320
8333
  children: [
8321
8334
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
8322
- _optionalChain([config, 'access', _266 => _266.actions, 'optionalAccess', _267 => _267.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
8335
+ _optionalChain([config, 'access', _269 => _269.actions, 'optionalAccess', _270 => _270.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
8323
8336
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
8324
8337
  ] }),
8325
8338
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8336,7 +8349,7 @@ function Header({ config, platform }) {
8336
8349
  }
8337
8350
  ),
8338
8351
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
8339
- _optionalChain([config, 'access', _268 => _268.actions, 'optionalAccess', _269 => _269.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
8352
+ _optionalChain([config, 'access', _271 => _271.actions, 'optionalAccess', _272 => _272.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
8340
8353
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8341
8354
  _chunkBJTOSUT4cjs.Button,
8342
8355
  {
@@ -8344,10 +8357,10 @@ function Header({ config, platform }) {
8344
8357
  size: "icon",
8345
8358
  className: "flex md:hidden",
8346
8359
  onClick: () => {
8347
- _optionalChain([config, 'access', _270 => _270.mobile, 'optionalAccess', _271 => _271.onToggle, 'optionalCall', _272 => _272()]);
8360
+ _optionalChain([config, 'access', _273 => _273.mobile, 'optionalAccess', _274 => _274.onToggle, 'optionalCall', _275 => _275()]);
8348
8361
  },
8349
- "aria-label": _optionalChain([config, 'access', _273 => _273.mobile, 'optionalAccess', _274 => _274.isOpen]) ? "Close menu" : "Open menu",
8350
- leftIcon: _optionalChain([config, 'access', _275 => _275.mobile, 'optionalAccess', _276 => _276.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
8362
+ "aria-label": _optionalChain([config, 'access', _276 => _276.mobile, 'optionalAccess', _277 => _277.isOpen]) ? "Close menu" : "Open menu",
8363
+ leftIcon: _optionalChain([config, 'access', _278 => _278.mobile, 'optionalAccess', _279 => _279.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
8351
8364
  }
8352
8365
  )
8353
8366
  ] })
@@ -8364,10 +8377,10 @@ function Header({ config, platform }) {
8364
8377
  // src/components/navigation/header-skeleton.tsx
8365
8378
 
8366
8379
  function HeaderSkeleton({ config }) {
8367
- const showNavigation = _optionalChain([config, 'optionalAccess', _277 => _277.navigation]) && config.navigation.items.length > 0;
8368
- const showActions = _optionalChain([config, 'optionalAccess', _278 => _278.actions, 'optionalAccess', _279 => _279.right]) && config.actions.right.length > 0;
8369
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _280 => _280.mobile, 'optionalAccess', _281 => _281.enabled]);
8370
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _282 => _282.className, 'optionalAccess', _283 => _283.includes, 'call', _284 => _284("admin")]);
8380
+ const showNavigation = _optionalChain([config, 'optionalAccess', _280 => _280.navigation]) && config.navigation.items.length > 0;
8381
+ const showActions = _optionalChain([config, 'optionalAccess', _281 => _281.actions, 'optionalAccess', _282 => _282.right]) && config.actions.right.length > 0;
8382
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _283 => _283.mobile, 'optionalAccess', _284 => _284.enabled]);
8383
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _285 => _285.className, 'optionalAccess', _286 => _286.includes, 'call', _287 => _287("admin")]);
8371
8384
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
8372
8385
  "header",
8373
8386
  {
@@ -8376,11 +8389,11 @@ function HeaderSkeleton({ config }) {
8376
8389
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
8377
8390
  "px-6 py-3",
8378
8391
  "transition-opacity duration-300 ease-in-out",
8379
- _optionalChain([config, 'optionalAccess', _285 => _285.className])
8392
+ _optionalChain([config, 'optionalAccess', _288 => _288.className])
8380
8393
  ),
8381
8394
  children: [
8382
8395
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
8383
- isAdminHeader && _optionalChain([config, 'optionalAccess', _286 => _286.actions, 'optionalAccess', _287 => _287.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
8396
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _289 => _289.actions, 'optionalAccess', _290 => _290.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
8384
8397
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
8385
8398
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
8386
8399
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -8388,8 +8401,8 @@ function HeaderSkeleton({ config }) {
8388
8401
  ] }),
8389
8402
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8390
8403
  "hidden md:flex items-center gap-2",
8391
- _optionalChain([config, 'optionalAccess', _288 => _288.navigation, 'optionalAccess', _289 => _289.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
8392
- _optionalChain([config, 'optionalAccess', _290 => _290.navigation, 'optionalAccess', _291 => _291.position]) === "right" && "ml-auto mr-4"
8404
+ _optionalChain([config, 'optionalAccess', _291 => _291.navigation, 'optionalAccess', _292 => _292.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
8405
+ _optionalChain([config, 'optionalAccess', _293 => _293.navigation, 'optionalAccess', _294 => _294.position]) === "right" && "ml-auto mr-4"
8393
8406
  ), children: [
8394
8407
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
8395
8408
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -8437,7 +8450,7 @@ function MobileNavPanel({ isOpen, config }) {
8437
8450
  _react.useEffect.call(void 0, () => {
8438
8451
  const handleKeyDown = (e) => {
8439
8452
  if (e.key === "Escape" && isOpen) {
8440
- _optionalChain([config, 'access', _292 => _292.onClose, 'optionalCall', _293 => _293()]);
8453
+ _optionalChain([config, 'access', _295 => _295.onClose, 'optionalCall', _296 => _296()]);
8441
8454
  }
8442
8455
  };
8443
8456
  if (isOpen) {
@@ -8454,7 +8467,7 @@ function MobileNavPanel({ isOpen, config }) {
8454
8467
  if (item.onClick) {
8455
8468
  item.onClick();
8456
8469
  }
8457
- _optionalChain([config, 'access', _294 => _294.onClose, 'optionalCall', _295 => _295()]);
8470
+ _optionalChain([config, 'access', _297 => _297.onClose, 'optionalCall', _298 => _298()]);
8458
8471
  };
8459
8472
  if (item.href) {
8460
8473
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8672,7 +8685,7 @@ function SlidingSidebar({ config }) {
8672
8685
  variant: "transparent",
8673
8686
  size: "default",
8674
8687
  onClick: () => {
8675
- _optionalChain([item, 'access', _296 => _296.onClick, 'optionalCall', _297 => _297()]);
8688
+ _optionalChain([item, 'access', _299 => _299.onClick, 'optionalCall', _300 => _300()]);
8676
8689
  config.onClose();
8677
8690
  },
8678
8691
  leftIcon: item.icon,
@@ -8695,7 +8708,7 @@ function SlidingSidebar({ config }) {
8695
8708
  variant: "transparent",
8696
8709
  size: "default",
8697
8710
  onClick: () => {
8698
- _optionalChain([item, 'access', _298 => _298.onClick, 'optionalCall', _299 => _299()]);
8711
+ _optionalChain([item, 'access', _301 => _301.onClick, 'optionalCall', _302 => _302()]);
8699
8712
  config.onClose();
8700
8713
  },
8701
8714
  leftIcon: item.icon,
@@ -8822,7 +8835,7 @@ function StickySectionNav({
8822
8835
  ] });
8823
8836
  }
8824
8837
  function useSectionNavigation(sections, options) {
8825
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _300 => _300[0], 'optionalAccess', _301 => _301.id]) || "");
8838
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _303 => _303[0], 'optionalAccess', _304 => _304.id]) || "");
8826
8839
  const isScrollingFromClick = _react.useRef.call(void 0, false);
8827
8840
  const { offset: offset2 = 100 } = options || {};
8828
8841
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -8847,7 +8860,7 @@ function useSectionNavigation(sections, options) {
8847
8860
  const handleScroll = () => {
8848
8861
  if (isScrollingFromClick.current) return;
8849
8862
  const scrollPosition = window.scrollY + offset2 + 50;
8850
- let currentSection = _optionalChain([sections, 'access', _302 => _302[0], 'optionalAccess', _303 => _303.id]) || "";
8863
+ let currentSection = _optionalChain([sections, 'access', _305 => _305[0], 'optionalAccess', _306 => _306.id]) || "";
8851
8864
  for (let i = sections.length - 1; i >= 0; i--) {
8852
8865
  const element = document.getElementById(sections[i].id);
8853
8866
  if (element && scrollPosition >= element.offsetTop) {
@@ -9031,14 +9044,14 @@ function NavigationSidebar({ config, disabled = false }) {
9031
9044
  const showLabel = isLgUp && !minimized;
9032
9045
  const handleToggle = _react.useCallback.call(void 0, () => {
9033
9046
  setMinimized((prev) => !prev);
9034
- _optionalChain([config, 'access', _304 => _304.onToggleMinimized, 'optionalCall', _305 => _305()]);
9047
+ _optionalChain([config, 'access', _307 => _307.onToggleMinimized, 'optionalCall', _308 => _308()]);
9035
9048
  }, [setMinimized, config]);
9036
9049
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
9037
- _optionalChain([event, 'optionalAccess', _306 => _306.stopPropagation, 'call', _307 => _307()]);
9050
+ _optionalChain([event, 'optionalAccess', _309 => _309.stopPropagation, 'call', _310 => _310()]);
9038
9051
  if (item.onClick) {
9039
9052
  item.onClick();
9040
9053
  } else if (item.path) {
9041
- _optionalChain([config, 'access', _308 => _308.onNavigate, 'optionalCall', _309 => _309(item.path)]);
9054
+ _optionalChain([config, 'access', _311 => _311.onNavigate, 'optionalCall', _312 => _312(item.path)]);
9042
9055
  }
9043
9056
  }, [config]);
9044
9057
  const { primaryItems, secondaryItems } = _react.useMemo.call(void 0, () => ({
@@ -9178,7 +9191,7 @@ function NotificationsProvider({
9178
9191
  const setShowPopups = React24.useCallback(
9179
9192
  (value2) => {
9180
9193
  setShowPopupsState(value2);
9181
- _optionalChain([onShowPopupsChange, 'optionalCall', _310 => _310(value2)]);
9194
+ _optionalChain([onShowPopupsChange, 'optionalCall', _313 => _313(value2)]);
9182
9195
  },
9183
9196
  [onShowPopupsChange]
9184
9197
  );
@@ -9283,11 +9296,11 @@ function HeaderGlobalSearch({
9283
9296
  };
9284
9297
  const handleSubmit = (e) => {
9285
9298
  e.preventDefault();
9286
- _optionalChain([onSubmit, 'optionalCall', _311 => _311(currentValue)]);
9299
+ _optionalChain([onSubmit, 'optionalCall', _314 => _314(currentValue)]);
9287
9300
  };
9288
9301
  const handleKeyDown = (e) => {
9289
9302
  if (e.key === "Enter") {
9290
- _optionalChain([onSubmit, 'optionalCall', _312 => _312(currentValue)]);
9303
+ _optionalChain([onSubmit, 'optionalCall', _315 => _315(currentValue)]);
9291
9304
  }
9292
9305
  };
9293
9306
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -9333,8 +9346,8 @@ function HeaderOrganizationFilter({
9333
9346
  className
9334
9347
  }) {
9335
9348
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
9336
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _313 => _313.name]) || "All Organizations";
9337
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _314 => _314.deviceCount]), () => ( totalDeviceCount));
9349
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _316 => _316.name]) || "All Organizations";
9350
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _317 => _317.deviceCount]), () => ( totalDeviceCount));
9338
9351
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenu, { children: [
9339
9352
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9340
9353
  "button",
@@ -9359,11 +9372,11 @@ function HeaderOrganizationFilter({
9359
9372
  }
9360
9373
  ) }),
9361
9374
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
9362
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _315 => _315("")]), children: "All Organizations" }),
9375
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _318 => _318("")]), children: "All Organizations" }),
9363
9376
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9364
9377
  _chunkBJTOSUT4cjs.DropdownMenuItem,
9365
9378
  {
9366
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _316 => _316(org.id)]),
9379
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _319 => _319(org.id)]),
9367
9380
  children: org.name
9368
9381
  },
9369
9382
  org.id
@@ -9535,9 +9548,9 @@ function NotificationsHeaderButton({
9535
9548
  dimmedClass
9536
9549
  }) {
9537
9550
  const ctx = useOptionalNotifications();
9538
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _317 => _317.unreadCount]), () => ( fallbackUnreadCount));
9539
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _318 => _318.isOpen]), () => ( false));
9540
- const onClick = _optionalChain([ctx, 'optionalAccess', _319 => _319.toggle]);
9551
+ const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _320 => _320.unreadCount]), () => ( fallbackUnreadCount));
9552
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _321 => _321.isOpen]), () => ( false));
9553
+ const onClick = _optionalChain([ctx, 'optionalAccess', _322 => _322.toggle]);
9541
9554
  const Icon2 = unreadCount > 0 ? _chunkTMD5LDX4cjs.BellRingingIcon : _chunkTMD5LDX4cjs.BellIcon;
9542
9555
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9543
9556
  HeaderButton,
@@ -9711,7 +9724,7 @@ var Switch = React28.forwardRef(({ className, checked, onCheckedChange, ...props
9711
9724
  }, [checked]);
9712
9725
  const handleCheckedChange = (newChecked) => {
9713
9726
  setIsChecked(newChecked);
9714
- _optionalChain([onCheckedChange, 'optionalCall', _320 => _320(newChecked)]);
9727
+ _optionalChain([onCheckedChange, 'optionalCall', _323 => _323(newChecked)]);
9715
9728
  };
9716
9729
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9717
9730
  SwitchPrimitives.Root,
@@ -9764,7 +9777,7 @@ function NotificationTile({
9764
9777
  if (!isLive) return;
9765
9778
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
9766
9779
  const timer = window.setTimeout(() => {
9767
- _optionalChain([onSettle, 'optionalCall', _321 => _321(id)]);
9780
+ _optionalChain([onSettle, 'optionalCall', _324 => _324(id)]);
9768
9781
  }, remaining);
9769
9782
  return () => window.clearTimeout(timer);
9770
9783
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -9802,7 +9815,7 @@ function NotificationTile({
9802
9815
  "button",
9803
9816
  {
9804
9817
  type: "button",
9805
- onClick: () => _optionalChain([onSettle, 'optionalCall', _322 => _322(id)]),
9818
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _325 => _325(id)]),
9806
9819
  "aria-label": "Dismiss notification",
9807
9820
  tabIndex: isLive ? 0 : -1,
9808
9821
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
@@ -9974,7 +9987,7 @@ var MobileBurgerMenu = React33.default.memo(function MobileBurgerMenu2({
9974
9987
  if (item.onClick) {
9975
9988
  item.onClick();
9976
9989
  } else if (item.path) {
9977
- _optionalChain([config, 'access', _323 => _323.onNavigate, 'optionalCall', _324 => _324(item.path)]);
9990
+ _optionalChain([config, 'access', _326 => _326.onNavigate, 'optionalCall', _327 => _327(item.path)]);
9978
9991
  }
9979
9992
  onClose();
9980
9993
  }, [config, onClose]);
@@ -10318,7 +10331,7 @@ var ShellTypeBadge = ({
10318
10331
  className,
10319
10332
  iconClassName
10320
10333
  }) => {
10321
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _325 => _325.toUpperCase, 'call', _326 => _326()]);
10334
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _328 => _328.toUpperCase, 'call', _329 => _329()]);
10322
10335
  const label = getShellLabel(normalizedType);
10323
10336
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
10324
10337
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -10775,7 +10788,7 @@ function AnnouncementBar() {
10775
10788
  setIsVisible(false);
10776
10789
  };
10777
10790
  const handleCtaClick = () => {
10778
- if (!_optionalChain([announcement, 'optionalAccess', _327 => _327.cta_url])) return;
10791
+ if (!_optionalChain([announcement, 'optionalAccess', _330 => _330.cta_url])) return;
10779
10792
  announcement.cta_target === "_blank" ? window.open(announcement.cta_url, "_blank", "noopener,noreferrer") : window.location.href = announcement.cta_url;
10780
10793
  };
10781
10794
  const renderIcon = () => {
@@ -10901,8 +10914,8 @@ function getVendorLogo(vendor) {
10901
10914
  if (vendor.logo) {
10902
10915
  return fixSupabaseStorageUrl(vendor.logo);
10903
10916
  }
10904
- const logoMedia = _optionalChain([vendor, 'access', _328 => _328.vendor_media, 'optionalAccess', _329 => _329.find, 'call', _330 => _330((m) => m.media_type === "logo")]);
10905
- if (_optionalChain([logoMedia, 'optionalAccess', _331 => _331.media_url])) {
10917
+ const logoMedia = _optionalChain([vendor, 'access', _331 => _331.vendor_media, 'optionalAccess', _332 => _332.find, 'call', _333 => _333((m) => m.media_type === "logo")]);
10918
+ if (_optionalChain([logoMedia, 'optionalAccess', _334 => _334.media_url])) {
10906
10919
  return fixSupabaseStorageUrl(logoMedia.media_url);
10907
10920
  }
10908
10921
  return null;
@@ -10977,7 +10990,7 @@ function VendorIcon({
10977
10990
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
10978
10991
  "flex items-center justify-center text-xs font-medium uppercase",
10979
10992
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
10980
- ), children: _optionalChain([vendor, 'access', _332 => _332.title, 'optionalAccess', _333 => _333.substring, 'call', _334 => _334(0, 2)]) || "??" }) });
10993
+ ), children: _optionalChain([vendor, 'access', _335 => _335.title, 'optionalAccess', _336 => _336.substring, 'call', _337 => _337(0, 2)]) || "??" }) });
10981
10994
  }
10982
10995
 
10983
10996
  // src/components/categories-cart.tsx
@@ -11261,7 +11274,7 @@ function UserSummary({
11261
11274
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
11262
11275
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", children: [
11263
11276
  name,
11264
- _optionalChain([mspPreview, 'optionalAccess', _335 => _335.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
11277
+ _optionalChain([mspPreview, 'optionalAccess', _338 => _338.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
11265
11278
  " \u2022 ",
11266
11279
  mspPreview.name
11267
11280
  ] })
@@ -11283,7 +11296,7 @@ function UserSummary({
11283
11296
  height: 40,
11284
11297
  className: "object-cover"
11285
11298
  }
11286
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _336 => _336.name, 'optionalAccess', _337 => _337.charAt, 'call', _338 => _338(0), 'access', _339 => _339.toUpperCase, 'call', _340 => _340()]) || "?" }) })
11299
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _339 => _339.name, 'optionalAccess', _340 => _340.charAt, 'call', _341 => _341(0), 'access', _342 => _342.toUpperCase, 'call', _343 => _343()]) || "?" }) })
11287
11300
  ] }),
11288
11301
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
11289
11302
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
@@ -11296,7 +11309,7 @@ function UserSummary({
11296
11309
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber2(mspPreview.annualRevenue)}` : null
11297
11310
  ].filter(Boolean).flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: seg === " \u2022 " ? "text-ods-text-secondary" : "", children: seg }, idx)) })
11298
11311
  ] }),
11299
- (_optionalChain([authProviders, 'optionalAccess', _341 => _341.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
11312
+ (_optionalChain([authProviders, 'optionalAccess', _344 => _344.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
11300
11313
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
11301
11314
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
11302
11315
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -11305,7 +11318,7 @@ function UserSummary({
11305
11318
  ] })
11306
11319
  ] })
11307
11320
  ] }),
11308
- (_optionalChain([authProviders, 'optionalAccess', _342 => _342.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
11321
+ (_optionalChain([authProviders, 'optionalAccess', _345 => _345.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
11309
11322
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
11310
11323
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
11311
11324
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -12026,7 +12039,7 @@ function FilterChip({
12026
12039
  onClick: disabled ? void 0 : (e) => {
12027
12040
  e.preventDefault();
12028
12041
  e.stopPropagation();
12029
- _optionalChain([onClick, 'optionalCall', _343 => _343()]);
12042
+ _optionalChain([onClick, 'optionalCall', _346 => _346()]);
12030
12043
  },
12031
12044
  role: onClick ? "button" : void 0,
12032
12045
  tabIndex: onClick && !disabled ? 0 : void 0,
@@ -12213,13 +12226,13 @@ function useUnifiedFiltering(config) {
12213
12226
  const searchParams = _navigation.useSearchParams.call(void 0, );
12214
12227
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
12215
12228
  const getCurrentFilterState = () => {
12216
- const search = _optionalChain([searchParams, 'optionalAccess', _344 => _344.get, 'call', _345 => _345("search")]) || void 0;
12217
- const categories = _optionalChain([searchParams, 'optionalAccess', _346 => _346.get, 'call', _347 => _347("category"), 'optionalAccess', _348 => _348.split, 'call', _349 => _349(","), 'access', _350 => _350.filter, 'call', _351 => _351(Boolean)]) || [];
12218
- const subcategories = _optionalChain([searchParams, 'optionalAccess', _352 => _352.get, 'call', _353 => _353("subcategory"), 'optionalAccess', _354 => _354.split, 'call', _355 => _355(","), 'access', _356 => _356.filter, 'call', _357 => _357(Boolean)]) || [];
12219
- const tags = _optionalChain([searchParams, 'optionalAccess', _358 => _358.get, 'call', _359 => _359("tag"), 'optionalAccess', _360 => _360.split, 'call', _361 => _361(","), 'access', _362 => _362.filter, 'call', _363 => _363(Boolean)]) || [];
12220
- const filters = _optionalChain([searchParams, 'optionalAccess', _364 => _364.getAll, 'call', _365 => _365("filter")]) || [];
12221
- const pricing = _optionalChain([searchParams, 'optionalAccess', _366 => _366.get, 'call', _367 => _367("pricing")]) || void 0;
12222
- const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _368 => _368.get, 'call', _369 => _369("page")]) || "1");
12229
+ const search = _optionalChain([searchParams, 'optionalAccess', _347 => _347.get, 'call', _348 => _348("search")]) || void 0;
12230
+ const categories = _optionalChain([searchParams, 'optionalAccess', _349 => _349.get, 'call', _350 => _350("category"), 'optionalAccess', _351 => _351.split, 'call', _352 => _352(","), 'access', _353 => _353.filter, 'call', _354 => _354(Boolean)]) || [];
12231
+ const subcategories = _optionalChain([searchParams, 'optionalAccess', _355 => _355.get, 'call', _356 => _356("subcategory"), 'optionalAccess', _357 => _357.split, 'call', _358 => _358(","), 'access', _359 => _359.filter, 'call', _360 => _360(Boolean)]) || [];
12232
+ const tags = _optionalChain([searchParams, 'optionalAccess', _361 => _361.get, 'call', _362 => _362("tag"), 'optionalAccess', _363 => _363.split, 'call', _364 => _364(","), 'access', _365 => _365.filter, 'call', _366 => _366(Boolean)]) || [];
12233
+ const filters = _optionalChain([searchParams, 'optionalAccess', _367 => _367.getAll, 'call', _368 => _368("filter")]) || [];
12234
+ const pricing = _optionalChain([searchParams, 'optionalAccess', _369 => _369.get, 'call', _370 => _370("pricing")]) || void 0;
12235
+ const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _371 => _371.get, 'call', _372 => _372("page")]) || "1");
12223
12236
  return {
12224
12237
  search,
12225
12238
  categories,
@@ -12500,13 +12513,13 @@ function FooterWaitlistButton({ className }) {
12500
12513
  const router = _navigation.useRouter.call(void 0, );
12501
12514
  const pathname = _navigation.usePathname.call(void 0, );
12502
12515
  const handleClick = _react.useCallback.call(void 0, () => {
12503
- if (_optionalChain([pathname, 'optionalAccess', _370 => _370.startsWith, 'call', _371 => _371("/waitlist")])) {
12516
+ if (_optionalChain([pathname, 'optionalAccess', _373 => _373.startsWith, 'call', _374 => _374("/waitlist")])) {
12504
12517
  const anchor = document.getElementById("waitlist-form");
12505
12518
  if (anchor) {
12506
12519
  anchor.scrollIntoView({ behavior: "smooth", block: "center" });
12507
12520
  setTimeout(() => {
12508
12521
  const input = anchor.querySelector('input[type="email"]');
12509
- _optionalChain([input, 'optionalAccess', _372 => _372.focus, 'call', _373 => _373()]);
12522
+ _optionalChain([input, 'optionalAccess', _375 => _375.focus, 'call', _376 => _376()]);
12510
12523
  }, 400);
12511
12524
  return;
12512
12525
  }
@@ -12535,7 +12548,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
12535
12548
  const [uploading, setUploading] = _react.useState.call(void 0, false);
12536
12549
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
12537
12550
  const MAX_SIZE = 5 * 1024 * 1024;
12538
- const openDialog = () => _optionalChain([inputRef, 'access', _374 => _374.current, 'optionalAccess', _375 => _375.click, 'call', _376 => _376()]);
12551
+ const openDialog = () => _optionalChain([inputRef, 'access', _377 => _377.current, 'optionalAccess', _378 => _378.click, 'call', _379 => _379()]);
12539
12552
  async function handleFile(file) {
12540
12553
  if (!file) return;
12541
12554
  if (!ALLOWED_TYPES.includes(file.type)) {
@@ -12591,7 +12604,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
12591
12604
  }
12592
12605
  }
12593
12606
  const handleSelect = (e) => {
12594
- handleFile(_optionalChain([e, 'access', _377 => _377.target, 'access', _378 => _378.files, 'optionalAccess', _379 => _379[0]]));
12607
+ handleFile(_optionalChain([e, 'access', _380 => _380.target, 'access', _381 => _381.files, 'optionalAccess', _382 => _382[0]]));
12595
12608
  };
12596
12609
  const handleRemove = async () => {
12597
12610
  if (onDelete) {
@@ -12728,7 +12741,7 @@ function ResponsiveIconsBlock({ loading = false }) {
12728
12741
  const getIconForIndex = (index) => {
12729
12742
  const col = index % displayColumns;
12730
12743
  const row = Math.floor(index / displayColumns);
12731
- return _optionalChain([iconGrid, 'access', _380 => _380[row], 'optionalAccess', _381 => _381[col]]) || availableIcons[0];
12744
+ return _optionalChain([iconGrid, 'access', _383 => _383[row], 'optionalAccess', _384 => _384[col]]) || availableIcons[0];
12732
12745
  };
12733
12746
  if (loading || iconGrid.length === 0) {
12734
12747
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -12814,7 +12827,7 @@ var Slider = React35.forwardRef(
12814
12827
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
12815
12828
  const handleChange = (e) => {
12816
12829
  const newValue = [Number(e.target.value)];
12817
- _optionalChain([onValueChange, 'optionalCall', _382 => _382(newValue)]);
12830
+ _optionalChain([onValueChange, 'optionalCall', _385 => _385(newValue)]);
12818
12831
  };
12819
12832
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12820
12833
  "input",
@@ -12927,7 +12940,7 @@ var ImageCropper = ({
12927
12940
  });
12928
12941
  } else if (e.key === "Escape") {
12929
12942
  e.preventDefault();
12930
- _optionalChain([onCancel, 'optionalCall', _383 => _383()]);
12943
+ _optionalChain([onCancel, 'optionalCall', _386 => _386()]);
12931
12944
  }
12932
12945
  };
12933
12946
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13121,7 +13134,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13121
13134
  const playPromise = video.play();
13122
13135
  if (playPromise !== void 0) {
13123
13136
  playPromise.then(() => {
13124
- const playButton = _optionalChain([video, 'access', _384 => _384.parentElement, 'optionalAccess', _385 => _385.querySelector, 'call', _386 => _386(".video-play-button")]);
13137
+ const playButton = _optionalChain([video, 'access', _387 => _387.parentElement, 'optionalAccess', _388 => _388.querySelector, 'call', _389 => _389(".video-play-button")]);
13125
13138
  if (playButton) {
13126
13139
  playButton.style.display = "none";
13127
13140
  }
@@ -13138,13 +13151,13 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13138
13151
  </a>
13139
13152
  </div>
13140
13153
  `;
13141
- _optionalChain([video, 'access', _387 => _387.parentElement, 'optionalAccess', _388 => _388.appendChild, 'call', _389 => _389(fallbackDiv)]);
13154
+ _optionalChain([video, 'access', _390 => _390.parentElement, 'optionalAccess', _391 => _391.appendChild, 'call', _392 => _392(fallbackDiv)]);
13142
13155
  }
13143
13156
  });
13144
13157
  }
13145
13158
  } else {
13146
13159
  video.pause();
13147
- const playButton = _optionalChain([video, 'access', _390 => _390.parentElement, 'optionalAccess', _391 => _391.querySelector, 'call', _392 => _392(".video-play-button")]);
13160
+ const playButton = _optionalChain([video, 'access', _393 => _393.parentElement, 'optionalAccess', _394 => _394.querySelector, 'call', _395 => _395(".video-play-button")]);
13148
13161
  if (playButton) {
13149
13162
  playButton.style.display = "flex";
13150
13163
  }
@@ -13228,13 +13241,13 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13228
13241
  "data-video-index": index,
13229
13242
  onClick: () => handleVideoClick(index),
13230
13243
  onPlay: () => {
13231
- const playButton = _optionalChain([document, 'access', _393 => _393.querySelector, 'call', _394 => _394(`[data-video-index="${index}"]`), 'optionalAccess', _395 => _395.parentElement, 'optionalAccess', _396 => _396.querySelector, 'call', _397 => _397(".video-play-button")]);
13244
+ const playButton = _optionalChain([document, 'access', _396 => _396.querySelector, 'call', _397 => _397(`[data-video-index="${index}"]`), 'optionalAccess', _398 => _398.parentElement, 'optionalAccess', _399 => _399.querySelector, 'call', _400 => _400(".video-play-button")]);
13232
13245
  if (playButton) {
13233
13246
  playButton.style.display = "none";
13234
13247
  }
13235
13248
  },
13236
13249
  onPause: () => {
13237
- const playButton = _optionalChain([document, 'access', _398 => _398.querySelector, 'call', _399 => _399(`[data-video-index="${index}"]`), 'optionalAccess', _400 => _400.parentElement, 'optionalAccess', _401 => _401.querySelector, 'call', _402 => _402(".video-play-button")]);
13250
+ const playButton = _optionalChain([document, 'access', _401 => _401.querySelector, 'call', _402 => _402(`[data-video-index="${index}"]`), 'optionalAccess', _403 => _403.parentElement, 'optionalAccess', _404 => _404.querySelector, 'call', _405 => _405(".video-play-button")]);
13238
13251
  if (playButton) {
13239
13252
  playButton.style.display = "flex";
13240
13253
  }
@@ -13261,7 +13274,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13261
13274
  </a>
13262
13275
  </div>
13263
13276
  `;
13264
- _optionalChain([target, 'access', _403 => _403.parentElement, 'optionalAccess', _404 => _404.appendChild, 'call', _405 => _405(fallbackDiv)]);
13277
+ _optionalChain([target, 'access', _406 => _406.parentElement, 'optionalAccess', _407 => _407.appendChild, 'call', _408 => _408(fallbackDiv)]);
13265
13278
  }
13266
13279
  },
13267
13280
  children: [
@@ -13789,8 +13802,8 @@ function PricingDisplay({
13789
13802
  }
13790
13803
  if (pricingArray.length === 1) {
13791
13804
  const item = pricingArray[0];
13792
- const price = _optionalChain([item, 'access', _406 => _406.ranges, 'optionalAccess', _407 => _407[0], 'optionalAccess', _408 => _408.min]) || 0;
13793
- const unit = _optionalChain([item, 'access', _409 => _409.ranges, 'optionalAccess', _410 => _410[0], 'optionalAccess', _411 => _411.unit]);
13805
+ const price = _optionalChain([item, 'access', _409 => _409.ranges, 'optionalAccess', _410 => _410[0], 'optionalAccess', _411 => _411.min]) || 0;
13806
+ const unit = _optionalChain([item, 'access', _412 => _412.ranges, 'optionalAccess', _413 => _413[0], 'optionalAccess', _414 => _414.unit]);
13794
13807
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13795
13808
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
13796
13809
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -13799,11 +13812,11 @@ function PricingDisplay({
13799
13812
  ] })
13800
13813
  ] });
13801
13814
  }
13802
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _412 => _412.ranges, 'optionalAccess', _413 => _413[0], 'optionalAccess', _414 => _414.min]) || 0, styleConfig.showTildePrefix));
13803
- const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _415 => _415.ranges, 'optionalAccess', _416 => _416[0], 'optionalAccess', _417 => _417.unit]));
13815
+ const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _415 => _415.ranges, 'optionalAccess', _416 => _416[0], 'optionalAccess', _417 => _417.min]) || 0, styleConfig.showTildePrefix));
13816
+ const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _418 => _418.ranges, 'optionalAccess', _419 => _419[0], 'optionalAccess', _420 => _420.unit]));
13804
13817
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13805
13818
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
13806
- itemWithUnit && _optionalChain([itemWithUnit, 'access', _418 => _418.ranges, 'optionalAccess', _419 => _419[0], 'optionalAccess', _420 => _420.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13819
+ itemWithUnit && _optionalChain([itemWithUnit, 'access', _421 => _421.ranges, 'optionalAccess', _422 => _422[0], 'optionalAccess', _423 => _423.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13807
13820
  "/",
13808
13821
  itemWithUnit.ranges[0].unit
13809
13822
  ] })
@@ -14001,7 +14014,7 @@ function VendorTag({
14001
14014
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
14002
14015
  };
14003
14016
  case "classification":
14004
- const classificationType = _optionalChain([text, 'optionalAccess', _421 => _421.toLowerCase, 'call', _422 => _422()]);
14017
+ const classificationType = _optionalChain([text, 'optionalAccess', _424 => _424.toLowerCase, 'call', _425 => _425()]);
14005
14018
  if (classificationType === "open_source") {
14006
14019
  return {
14007
14020
  text: "Open Source",
@@ -14055,7 +14068,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14055
14068
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14056
14069
  VendorTag,
14057
14070
  {
14058
- type: _optionalChain([source, 'optionalAccess', _423 => _423.toLowerCase, 'call', _424 => _424()]),
14071
+ type: _optionalChain([source, 'optionalAccess', _426 => _426.toLowerCase, 'call', _427 => _427()]),
14059
14072
  size: "sm",
14060
14073
  hidden
14061
14074
  },
@@ -16175,12 +16188,12 @@ function OnboardingWalkthrough({
16175
16188
  }
16176
16189
  }, [state.completedSteps, markComplete]);
16177
16190
  const handleStepSkip = (step) => {
16178
- _optionalChain([step, 'access', _425 => _425.onSkip, 'optionalCall', _426 => _426()]);
16191
+ _optionalChain([step, 'access', _428 => _428.onSkip, 'optionalCall', _429 => _429()]);
16179
16192
  markSkipped(step.id);
16180
16193
  };
16181
16194
  const handleDismiss = () => {
16182
16195
  dismissOnboarding();
16183
- _optionalChain([onDismiss, 'optionalCall', _427 => _427()]);
16196
+ _optionalChain([onDismiss, 'optionalCall', _430 => _430()]);
16184
16197
  };
16185
16198
  if (state.dismissed) {
16186
16199
  return null;
@@ -16888,8 +16901,8 @@ function parseSrt(srt) {
16888
16901
  const tsIndex = lines.findIndex((l) => l.includes(" --> "));
16889
16902
  if (tsIndex === -1) continue;
16890
16903
  const [startStr, endStr] = lines[tsIndex].split(" --> ");
16891
- const from = parseSrtTimestamp(_optionalChain([startStr, 'optionalAccess', _428 => _428.trim, 'call', _429 => _429()]));
16892
- const to = parseSrtTimestamp(_optionalChain([endStr, 'optionalAccess', _430 => _430.trim, 'call', _431 => _431()]));
16904
+ const from = parseSrtTimestamp(_optionalChain([startStr, 'optionalAccess', _431 => _431.trim, 'call', _432 => _432()]));
16905
+ const to = parseSrtTimestamp(_optionalChain([endStr, 'optionalAccess', _433 => _433.trim, 'call', _434 => _434()]));
16893
16906
  if (from === null || to === null) continue;
16894
16907
  const text = lines.slice(tsIndex + 1).join("\n").trim();
16895
16908
  if (text) cues.push({ from, to, text });
@@ -16908,7 +16921,7 @@ function useSubtitleOverlay(srtContent) {
16908
16921
  const updateTime = _react.useCallback.call(void 0, (playedSeconds) => {
16909
16922
  const timeMs = playedSeconds * 1e3;
16910
16923
  const active = cues.find((c) => timeMs >= c.from && timeMs <= c.to);
16911
- setActiveText(_nullishCoalesce(_optionalChain([active, 'optionalAccess', _432 => _432.text]), () => ( null)));
16924
+ setActiveText(_nullishCoalesce(_optionalChain([active, 'optionalAccess', _435 => _435.text]), () => ( null)));
16912
16925
  }, [cues]);
16913
16926
  return { activeText, updateTime, hasCues: cues.length > 0 };
16914
16927
  }
@@ -16978,7 +16991,7 @@ var VideoPlayer = ({
16978
16991
  }
16979
16992
  }, []);
16980
16993
  const enterNativeVideoFullscreen = _react.useCallback.call(void 0, () => {
16981
- const video = _optionalChain([playerRef, 'access', _433 => _433.current, 'optionalAccess', _434 => _434.getInternalPlayer, 'call', _435 => _435()]);
16994
+ const video = _optionalChain([playerRef, 'access', _436 => _436.current, 'optionalAccess', _437 => _437.getInternalPlayer, 'call', _438 => _438()]);
16982
16995
  if (!video || !video.webkitEnterFullscreen) return;
16983
16996
  ensureWebkitCaptionCSS();
16984
16997
  const trackSrc = captionsUrl || null;
@@ -17086,11 +17099,11 @@ var VideoPlayer = ({
17086
17099
  break;
17087
17100
  case "ArrowLeft":
17088
17101
  e.preventDefault();
17089
- _optionalChain([playerRef, 'access', _436 => _436.current, 'optionalAccess', _437 => _437.seekTo, 'call', _438 => _438(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _439 => _439.current, 'optionalAccess', _440 => _440.getCurrentTime, 'call', _441 => _441()]), () => ( 0))) - 5), "seconds")]);
17102
+ _optionalChain([playerRef, 'access', _439 => _439.current, 'optionalAccess', _440 => _440.seekTo, 'call', _441 => _441(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _442 => _442.current, 'optionalAccess', _443 => _443.getCurrentTime, 'call', _444 => _444()]), () => ( 0))) - 5), "seconds")]);
17090
17103
  break;
17091
17104
  case "ArrowRight":
17092
17105
  e.preventDefault();
17093
- _optionalChain([playerRef, 'access', _442 => _442.current, 'optionalAccess', _443 => _443.seekTo, 'call', _444 => _444(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _445 => _445.current, 'optionalAccess', _446 => _446.getCurrentTime, 'call', _447 => _447()]), () => ( 0))) + 5), "seconds")]);
17106
+ _optionalChain([playerRef, 'access', _445 => _445.current, 'optionalAccess', _446 => _446.seekTo, 'call', _447 => _447(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _448 => _448.current, 'optionalAccess', _449 => _449.getCurrentTime, 'call', _450 => _450()]), () => ( 0))) + 5), "seconds")]);
17094
17107
  break;
17095
17108
  case "ArrowUp":
17096
17109
  e.preventDefault();
@@ -17140,11 +17153,11 @@ var VideoPlayer = ({
17140
17153
  const isDraggingRef = _react.useRef.call(void 0, false);
17141
17154
  const dragListenersRef = _react.useRef.call(void 0, null);
17142
17155
  const seekToClientX = _react.useCallback.call(void 0, (clientX) => {
17143
- const rect = _optionalChain([progressBarRef, 'access', _448 => _448.current, 'optionalAccess', _449 => _449.getBoundingClientRect, 'call', _450 => _450()]);
17156
+ const rect = _optionalChain([progressBarRef, 'access', _451 => _451.current, 'optionalAccess', _452 => _452.getBoundingClientRect, 'call', _453 => _453()]);
17144
17157
  if (!rect) return;
17145
17158
  const fraction = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
17146
17159
  setPlayed(fraction);
17147
- _optionalChain([playerRef, 'access', _451 => _451.current, 'optionalAccess', _452 => _452.seekTo, 'call', _453 => _453(fraction, "fraction")]);
17160
+ _optionalChain([playerRef, 'access', _454 => _454.current, 'optionalAccess', _455 => _455.seekTo, 'call', _456 => _456(fraction, "fraction")]);
17148
17161
  }, []);
17149
17162
  const handleProgressMouseDown = _react.useCallback.call(void 0, (e) => {
17150
17163
  e.stopPropagation();
@@ -17183,22 +17196,22 @@ var VideoPlayer = ({
17183
17196
  if (e.key === "ArrowRight") {
17184
17197
  e.preventDefault();
17185
17198
  e.stopPropagation();
17186
- _optionalChain([playerRef, 'access', _454 => _454.current, 'optionalAccess', _455 => _455.seekTo, 'call', _456 => _456(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _457 => _457.current, 'optionalAccess', _458 => _458.getCurrentTime, 'call', _459 => _459()]), () => ( 0))) + 5), "seconds")]);
17199
+ _optionalChain([playerRef, 'access', _457 => _457.current, 'optionalAccess', _458 => _458.seekTo, 'call', _459 => _459(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _460 => _460.current, 'optionalAccess', _461 => _461.getCurrentTime, 'call', _462 => _462()]), () => ( 0))) + 5), "seconds")]);
17187
17200
  }
17188
17201
  if (e.key === "ArrowLeft") {
17189
17202
  e.preventDefault();
17190
17203
  e.stopPropagation();
17191
- _optionalChain([playerRef, 'access', _460 => _460.current, 'optionalAccess', _461 => _461.seekTo, 'call', _462 => _462(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.getCurrentTime, 'call', _465 => _465()]), () => ( 0))) - 5), "seconds")]);
17204
+ _optionalChain([playerRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.seekTo, 'call', _465 => _465(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.getCurrentTime, 'call', _468 => _468()]), () => ( 0))) - 5), "seconds")]);
17192
17205
  }
17193
17206
  if (e.key === "Home") {
17194
17207
  e.preventDefault();
17195
17208
  e.stopPropagation();
17196
- _optionalChain([playerRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.seekTo, 'call', _468 => _468(0, "seconds")]);
17209
+ _optionalChain([playerRef, 'access', _469 => _469.current, 'optionalAccess', _470 => _470.seekTo, 'call', _471 => _471(0, "seconds")]);
17197
17210
  }
17198
17211
  if (e.key === "End") {
17199
17212
  e.preventDefault();
17200
17213
  e.stopPropagation();
17201
- _optionalChain([playerRef, 'access', _469 => _469.current, 'optionalAccess', _470 => _470.seekTo, 'call', _471 => _471(duration, "seconds")]);
17214
+ _optionalChain([playerRef, 'access', _472 => _472.current, 'optionalAccess', _473 => _473.seekTo, 'call', _474 => _474(duration, "seconds")]);
17202
17215
  }
17203
17216
  }, [duration]);
17204
17217
  const handleProgressHover = _react.useCallback.call(void 0, (e) => {
@@ -17253,7 +17266,7 @@ var VideoPlayer = ({
17253
17266
  }, []);
17254
17267
  _react.useEffect.call(void 0, () => {
17255
17268
  if (!hasStarted) return;
17256
- const video = _optionalChain([playerRef, 'access', _472 => _472.current, 'optionalAccess', _473 => _473.getInternalPlayer, 'call', _474 => _474()]);
17269
+ const video = _optionalChain([playerRef, 'access', _475 => _475.current, 'optionalAccess', _476 => _476.getInternalPlayer, 'call', _477 => _477()]);
17257
17270
  if (!video) return;
17258
17271
  const onBeginFS = () => activateCaptionTracks(video);
17259
17272
  video.addEventListener("webkitbeginfullscreen", onBeginFS);
@@ -17268,7 +17281,7 @@ var VideoPlayer = ({
17268
17281
  const handleEnded = _react.useCallback.call(void 0, () => setIsPlaying(false), []);
17269
17282
  const handlePlayClick = _react.useCallback.call(void 0, () => {
17270
17283
  if (lazyMount) {
17271
- const native = _optionalChain([playerRef, 'access', _475 => _475.current, 'optionalAccess', _476 => _476.getInternalPlayer, 'call', _477 => _477()]);
17284
+ const native = _optionalChain([playerRef, 'access', _478 => _478.current, 'optionalAccess', _479 => _479.getInternalPlayer, 'call', _480 => _480()]);
17272
17285
  if (native instanceof HTMLVideoElement) {
17273
17286
  native.play().catch(() => {
17274
17287
  clearTimeout(lazyMountFailureTimerRef.current);
@@ -17587,7 +17600,7 @@ var SecondaryAction = ({ action }) => {
17587
17600
  e.preventDefault();
17588
17601
  return;
17589
17602
  }
17590
- _optionalChain([action, 'access', _478 => _478.onClick, 'optionalCall', _479 => _479()]);
17603
+ _optionalChain([action, 'access', _481 => _481.onClick, 'optionalCall', _482 => _482()]);
17591
17604
  },
17592
17605
  [action]
17593
17606
  );
@@ -17628,13 +17641,13 @@ var MenuItem = ({ item, onItemClick }) => {
17628
17641
  const activate = _react.useCallback.call(void 0, () => {
17629
17642
  if (item.disabled) return;
17630
17643
  if (item.type === "checkbox") {
17631
- _optionalChain([item, 'access', _480 => _480.onClick, 'optionalCall', _481 => _481()]);
17632
- _optionalChain([onItemClick, 'optionalCall', _482 => _482(item)]);
17644
+ _optionalChain([item, 'access', _483 => _483.onClick, 'optionalCall', _484 => _484()]);
17645
+ _optionalChain([onItemClick, 'optionalCall', _485 => _485(item)]);
17633
17646
  return;
17634
17647
  }
17635
17648
  if (item.type === "submenu") return;
17636
- _optionalChain([item, 'access', _483 => _483.onClick, 'optionalCall', _484 => _484()]);
17637
- _optionalChain([onItemClick, 'optionalCall', _485 => _485(item)]);
17649
+ _optionalChain([item, 'access', _486 => _486.onClick, 'optionalCall', _487 => _487()]);
17650
+ _optionalChain([onItemClick, 'optionalCall', _488 => _488(item)]);
17638
17651
  }, [item, onItemClick]);
17639
17652
  const handleClick = _react.useCallback.call(void 0,
17640
17653
  (e) => {
@@ -17660,8 +17673,8 @@ var MenuItem = ({ item, onItemClick }) => {
17660
17673
  e.stopPropagation();
17661
17674
  return;
17662
17675
  }
17663
- _optionalChain([item, 'access', _486 => _486.onClick, 'optionalCall', _487 => _487()]);
17664
- _optionalChain([onItemClick, 'optionalCall', _488 => _488(item)]);
17676
+ _optionalChain([item, 'access', _489 => _489.onClick, 'optionalCall', _490 => _490()]);
17677
+ _optionalChain([onItemClick, 'optionalCall', _491 => _491(item)]);
17665
17678
  },
17666
17679
  [item, onItemClick]
17667
17680
  );
@@ -17816,7 +17829,7 @@ var ActionsMenuDropdown = ({
17816
17829
  const [open, setOpen] = _react.useState.call(void 0, false);
17817
17830
  const handleItemClick = _react.useCallback.call(void 0,
17818
17831
  (item) => {
17819
- _optionalChain([onItemClick, 'optionalCall', _489 => _489(item)]);
17832
+ _optionalChain([onItemClick, 'optionalCall', _492 => _492(item)]);
17820
17833
  if (item.type !== "checkbox" && item.type !== "submenu") {
17821
17834
  setOpen(false);
17822
17835
  }
@@ -17987,7 +18000,7 @@ function IconButtonsVariant({
17987
18000
  }) {
17988
18001
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
17989
18002
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
17990
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _490 => _490[0], 'access', _491 => _491.submenu, 'optionalAccess', _492 => _492.length]);
18003
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _493 => _493[0], 'access', _494 => _494.submenu, 'optionalAccess', _495 => _495.length]);
17991
18004
  const singleAction = isSingleAction ? actions[0] : null;
17992
18005
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
17993
18006
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -18417,14 +18430,14 @@ function ReleaseDetailPage({
18417
18430
  releaseVersion
18418
18431
  ] })
18419
18432
  ] }) }),
18420
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _493 => _493.map, 'call', _494 => _494((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18433
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _496 => _496.map, 'call', _497 => _497((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18421
18434
  StatusBadge,
18422
18435
  {
18423
- text: (tag.name || _optionalChain([tag, 'access', _495 => _495.blog_tags, 'optionalAccess', _496 => _496.name]) || "").toUpperCase(),
18436
+ text: (tag.name || _optionalChain([tag, 'access', _498 => _498.blog_tags, 'optionalAccess', _499 => _499.name]) || "").toUpperCase(),
18424
18437
  variant: "card",
18425
18438
  className: "bg-ods-card border border-ods-border"
18426
18439
  },
18427
- tag.id || _optionalChain([tag, 'access', _497 => _497.blog_tags, 'optionalAccess', _498 => _498.id])
18440
+ tag.id || _optionalChain([tag, 'access', _500 => _500.blog_tags, 'optionalAccess', _501 => _501.id])
18428
18441
  ))]) }),
18429
18442
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
18430
18443
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
@@ -18443,15 +18456,15 @@ function ReleaseDetailPage({
18443
18456
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18444
18457
  SquareAvatar,
18445
18458
  {
18446
- src: _optionalChain([author, 'optionalAccess', _499 => _499.avatar_url]) || "",
18447
- alt: _optionalChain([author, 'optionalAccess', _500 => _500.full_name]) || "Author",
18448
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _501 => _501.full_name]) || "Unknown"),
18459
+ src: _optionalChain([author, 'optionalAccess', _502 => _502.avatar_url]) || "",
18460
+ alt: _optionalChain([author, 'optionalAccess', _503 => _503.full_name]) || "Author",
18461
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _504 => _504.full_name]) || "Unknown"),
18449
18462
  size: "md",
18450
18463
  variant: "round"
18451
18464
  }
18452
18465
  ),
18453
18466
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18454
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _502 => _502.full_name]) || "Unknown Author" }),
18467
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _505 => _505.full_name]) || "Unknown Author" }),
18455
18468
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18456
18469
  ] })
18457
18470
  ] })
@@ -18482,15 +18495,15 @@ function ReleaseDetailPage({
18482
18495
  videoBites,
18483
18496
  bitesTitle: "Video Clips",
18484
18497
  filterPublishedBites: true,
18485
- srtContent: _optionalChain([release, 'optionalAccess', _503 => _503.srt_content]),
18486
- captionsUrl: _optionalChain([release, 'optionalAccess', _504 => _504.captionsUrl])
18498
+ srtContent: _optionalChain([release, 'optionalAccess', _506 => _506.srt_content]),
18499
+ captionsUrl: _optionalChain([release, 'optionalAccess', _507 => _507.captionsUrl])
18487
18500
  }
18488
18501
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18489
18502
  youtubeUrl && (() => {
18490
18503
  const videoId = extractYouTubeId(youtubeUrl);
18491
18504
  return videoId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, YouTubeEmbed, { videoId, title: `${releaseTitle} - Video`, showTitle: false, showMeta: true }) : null;
18492
18505
  })(),
18493
- !youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-3xl", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayer, { url: mainVideoUrl, srtContent: _optionalChain([release, 'optionalAccess', _505 => _505.srt_content]), captionsUrl: _optionalChain([release, 'optionalAccess', _506 => _506.captionsUrl]) }) }) }),
18506
+ !youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-3xl", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayer, { url: mainVideoUrl, srtContent: _optionalChain([release, 'optionalAccess', _508 => _508.srt_content]), captionsUrl: _optionalChain([release, 'optionalAccess', _509 => _509.captionsUrl]) }) }) }),
18494
18507
  highlightVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-3xl", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayer, { url: highlightVideoUrl, poster: highlightVideoThumbnail }) }) })
18495
18508
  ] }),
18496
18509
  releaseContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: releaseContent }) }),
@@ -18570,7 +18583,7 @@ function ReleaseDetailPage({
18570
18583
  }
18571
18584
  )
18572
18585
  ] }),
18573
- (_optionalChain([githubReleases, 'optionalAccess', _507 => _507.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _508 => _508.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18586
+ (_optionalChain([githubReleases, 'optionalAccess', _510 => _510.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _511 => _511.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18574
18587
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18575
18588
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
18576
18589
  githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
@@ -18599,7 +18612,7 @@ function ReleaseDetailPage({
18599
18612
  {
18600
18613
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18601
18614
  className: "text-h4 text-[#ffc008] hover:underline",
18602
- children: _optionalChain([path, 'access', _509 => _509.replace, 'call', _510 => _510(/^\//, ""), 'access', _511 => _511.split, 'call', _512 => _512("/"), 'access', _513 => _513.pop, 'call', _514 => _514(), 'optionalAccess', _515 => _515.replace, 'call', _516 => _516(/-/g, " ")]) || "View Article"
18615
+ children: _optionalChain([path, 'access', _512 => _512.replace, 'call', _513 => _513(/^\//, ""), 'access', _514 => _514.split, 'call', _515 => _515("/"), 'access', _516 => _516.pop, 'call', _517 => _517(), 'optionalAccess', _518 => _518.replace, 'call', _519 => _519(/-/g, " ")]) || "View Article"
18603
18616
  }
18604
18617
  ),
18605
18618
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -19245,7 +19258,7 @@ function TagsManager({
19245
19258
  const name = search.trim();
19246
19259
  if (!name) return;
19247
19260
  const result = await onCreateTag(name);
19248
- if (_optionalChain([result, 'optionalAccess', _517 => _517.id])) {
19261
+ if (_optionalChain([result, 'optionalAccess', _520 => _520.id])) {
19249
19262
  onChange([...selectedIds, result.id]);
19250
19263
  setSearch("");
19251
19264
  }
@@ -19253,7 +19266,7 @@ function TagsManager({
19253
19266
  const startEdit = React53.useCallback((id, name) => {
19254
19267
  setEditingId(id);
19255
19268
  setEditingName(name);
19256
- setTimeout(() => _optionalChain([editInputRef, 'access', _518 => _518.current, 'optionalAccess', _519 => _519.focus, 'call', _520 => _520()]), 0);
19269
+ setTimeout(() => _optionalChain([editInputRef, 'access', _521 => _521.current, 'optionalAccess', _522 => _522.focus, 'call', _523 => _523()]), 0);
19257
19270
  }, []);
19258
19271
  const confirmEdit = React53.useCallback(async () => {
19259
19272
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -19280,7 +19293,7 @@ function TagsManager({
19280
19293
  e.stopPropagation();
19281
19294
  onChange([]);
19282
19295
  setSearch("");
19283
- _optionalChain([inputRef, 'access', _521 => _521.current, 'optionalAccess', _522 => _522.focus, 'call', _523 => _523()]);
19296
+ _optionalChain([inputRef, 'access', _524 => _524.current, 'optionalAccess', _525 => _525.focus, 'call', _526 => _526()]);
19284
19297
  },
19285
19298
  [onChange]
19286
19299
  );
@@ -19379,10 +19392,10 @@ function TagsManager({
19379
19392
  align: "start",
19380
19393
  onOpenAutoFocus: (e) => {
19381
19394
  e.preventDefault();
19382
- _optionalChain([inputRef, 'access', _524 => _524.current, 'optionalAccess', _525 => _525.focus, 'call', _526 => _526()]);
19395
+ _optionalChain([inputRef, 'access', _527 => _527.current, 'optionalAccess', _528 => _528.focus, 'call', _529 => _529()]);
19383
19396
  },
19384
19397
  onInteractOutside: (e) => {
19385
- if (_optionalChain([containerRef, 'access', _527 => _527.current, 'optionalAccess', _528 => _528.contains, 'call', _529 => _529(e.target)])) {
19398
+ if (_optionalChain([containerRef, 'access', _530 => _530.current, 'optionalAccess', _531 => _531.contains, 'call', _532 => _532(e.target)])) {
19386
19399
  e.preventDefault();
19387
19400
  }
19388
19401
  },
@@ -20529,19 +20542,19 @@ function TabNavigation({
20529
20542
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20530
20543
  const getInitialTab = () => {
20531
20544
  if (isUrlSyncEnabled) {
20532
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _530 => _530.get, 'call', _531 => _531(paramName)]) || "";
20545
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _533 => _533.get, 'call', _534 => _534(paramName)]) || "";
20533
20546
  if (validTabIds.has(fromUrl)) {
20534
20547
  return fromUrl;
20535
20548
  }
20536
20549
  }
20537
- return defaultTab || _optionalChain([tabs, 'access', _532 => _532[0], 'optionalAccess', _533 => _533.id]) || "";
20550
+ return defaultTab || _optionalChain([tabs, 'access', _535 => _535[0], 'optionalAccess', _536 => _536.id]) || "";
20538
20551
  };
20539
20552
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20540
20553
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20541
20554
  _react.useEffect.call(void 0, () => {
20542
20555
  if (!isUrlSyncEnabled) return;
20543
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _534 => _534.get, 'call', _535 => _535(paramName)]) || "";
20544
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _536 => _536[0], 'optionalAccess', _537 => _537.id]) || "";
20556
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _537 => _537.get, 'call', _538 => _538(paramName)]) || "";
20557
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _539 => _539[0], 'optionalAccess', _540 => _540.id]) || "";
20545
20558
  if (nextTab !== internalActiveTab) {
20546
20559
  setInternalActiveTab(nextTab);
20547
20560
  }
@@ -20549,13 +20562,13 @@ function TabNavigation({
20549
20562
  const handleTabChange = (tabId) => {
20550
20563
  if (isUrlSyncEnabled) {
20551
20564
  setInternalActiveTab(tabId);
20552
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _538 => _538.toString, 'call', _539 => _539()]));
20565
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _541 => _541.toString, 'call', _542 => _542()]));
20553
20566
  params.set(paramName, tabId);
20554
20567
  const method = replaceState ? "replace" : "push";
20555
20568
  router[method](`${pathname}?${params.toString()}`);
20556
- _optionalChain([controlledOnTabChange, 'optionalCall', _540 => _540(tabId)]);
20569
+ _optionalChain([controlledOnTabChange, 'optionalCall', _543 => _543(tabId)]);
20557
20570
  } else {
20558
- _optionalChain([controlledOnTabChange, 'optionalCall', _541 => _541(tabId)]);
20571
+ _optionalChain([controlledOnTabChange, 'optionalCall', _544 => _544(tabId)]);
20559
20572
  }
20560
20573
  };
20561
20574
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20643,7 +20656,7 @@ function TabNavigation({
20643
20656
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20644
20657
  var getTabComponent = (tabs, tabId) => {
20645
20658
  const tab = getTabById(tabs, tabId);
20646
- return _optionalChain([tab, 'optionalAccess', _542 => _542.component]) || null;
20659
+ return _optionalChain([tab, 'optionalAccess', _545 => _545.component]) || null;
20647
20660
  };
20648
20661
 
20649
20662
  // src/components/ui/alert.tsx
@@ -20980,16 +20993,16 @@ function FilterModal({
20980
20993
  };
20981
20994
  const handleReset = () => {
20982
20995
  onFilterChange({});
20983
- _optionalChain([onTagsChange, 'optionalCall', _543 => _543([])]);
20996
+ _optionalChain([onTagsChange, 'optionalCall', _546 => _546([])]);
20984
20997
  onClose();
20985
20998
  };
20986
20999
  const handleApply = () => {
20987
21000
  onFilterChange(selectedFilters);
20988
- _optionalChain([onTagsChange, 'optionalCall', _544 => _544(pendingTags)]);
21001
+ _optionalChain([onTagsChange, 'optionalCall', _547 => _547(pendingTags)]);
20989
21002
  onClose();
20990
21003
  };
20991
21004
  const getColumnDirection = (columnKey) => {
20992
- return _optionalChain([sortConfig, 'optionalAccess', _545 => _545.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21005
+ return _optionalChain([sortConfig, 'optionalAccess', _548 => _548.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20993
21006
  };
20994
21007
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
20995
21008
  const hasFilterGroups = filterGroups.length > 0;
@@ -21038,7 +21051,7 @@ function FilterModal({
21038
21051
  {
21039
21052
  column,
21040
21053
  currentDirection: getColumnDirection(column.key),
21041
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _546 => _546(column.key, direction)]),
21054
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _549 => _549(column.key, direction)]),
21042
21055
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
21043
21056
  },
21044
21057
  column.key
@@ -21204,9 +21217,9 @@ function TitleBlock({
21204
21217
  const [imageFailed, setImageFailed] = React33.default.useState(false);
21205
21218
  React33.default.useEffect(() => {
21206
21219
  setImageFailed(false);
21207
- }, [_optionalChain([image, 'optionalAccess', _547 => _547.src])]);
21220
+ }, [_optionalChain([image, 'optionalAccess', _550 => _550.src])]);
21208
21221
  const showImageFallback = !!image && (imageFailed || !image.src);
21209
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _548 => _548.alt]) || title);
21222
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _551 => _551.alt]) || title);
21210
21223
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21211
21224
  "div",
21212
21225
  {
@@ -22002,26 +22015,26 @@ function DeviceCard({
22002
22015
  ] }),
22003
22016
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", children: device.organization })
22004
22017
  ] }),
22005
- _optionalChain([actions, 'access', _549 => _549.moreButton, 'optionalAccess', _550 => _550.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22018
+ _optionalChain([actions, 'access', _552 => _552.moreButton, 'optionalAccess', _553 => _553.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22006
22019
  "div",
22007
22020
  {
22008
22021
  className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
22009
22022
  onClick: (e) => {
22010
22023
  e.stopPropagation();
22011
- _optionalChain([actions, 'access', _551 => _551.moreButton, 'optionalAccess', _552 => _552.onClick, 'optionalCall', _553 => _553()]);
22024
+ _optionalChain([actions, 'access', _554 => _554.moreButton, 'optionalAccess', _555 => _555.onClick, 'optionalCall', _556 => _556()]);
22012
22025
  },
22013
22026
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22014
22027
  }
22015
22028
  ),
22016
- _optionalChain([actions, 'access', _554 => _554.detailsButton, 'optionalAccess', _555 => _555.visible]) !== false && _optionalChain([actions, 'access', _556 => _556.detailsButton, 'optionalAccess', _557 => _557.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22017
- _optionalChain([actions, 'access', _558 => _558.customActions, 'optionalAccess', _559 => _559.map, 'call', _560 => _560(
22029
+ _optionalChain([actions, 'access', _557 => _557.detailsButton, 'optionalAccess', _558 => _558.visible]) !== false && _optionalChain([actions, 'access', _559 => _559.detailsButton, 'optionalAccess', _560 => _560.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22030
+ _optionalChain([actions, 'access', _561 => _561.customActions, 'optionalAccess', _562 => _562.map, 'call', _563 => _563(
22018
22031
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22019
22032
  "div",
22020
22033
  {
22021
22034
  className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
22022
22035
  onClick: (e) => {
22023
22036
  e.stopPropagation();
22024
- _optionalChain([action, 'access', _561 => _561.onClick, 'optionalCall', _562 => _562()]);
22037
+ _optionalChain([action, 'access', _564 => _564.onClick, 'optionalCall', _565 => _565()]);
22025
22038
  },
22026
22039
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22027
22040
  },
@@ -22380,7 +22393,7 @@ function MoreActionsMenu({
22380
22393
  ] });
22381
22394
  const handleActivate = (e) => {
22382
22395
  e.stopPropagation();
22383
- if (!item.disabled) _optionalChain([item, 'access', _563 => _563.onClick, 'optionalCall', _564 => _564()]);
22396
+ if (!item.disabled) _optionalChain([item, 'access', _566 => _566.onClick, 'optionalCall', _567 => _567()]);
22384
22397
  };
22385
22398
  if (item.href) {
22386
22399
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22530,7 +22543,7 @@ function OrganizationIcon({
22530
22543
  backgroundStyle = "dark"
22531
22544
  }) {
22532
22545
  const { width, height } = imageSizeMap2[size];
22533
- const initials = _optionalChain([organizationName, 'optionalAccess', _565 => _565.substring, 'call', _566 => _566(0, 2)]) || "??";
22546
+ const initials = _optionalChain([organizationName, 'optionalAccess', _568 => _568.substring, 'call', _569 => _569(0, 2)]) || "??";
22534
22547
  const containerClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
22535
22548
  sizeClasses3[size],
22536
22549
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22581,7 +22594,7 @@ function OrganizationCard({
22581
22594
  const handleActionClick = (e) => {
22582
22595
  e.preventDefault();
22583
22596
  e.stopPropagation();
22584
- _optionalChain([actionButton, 'optionalAccess', _567 => _567.onClick, 'call', _568 => _568(organization, e)]);
22597
+ _optionalChain([actionButton, 'optionalAccess', _570 => _570.onClick, 'call', _571 => _571(organization, e)]);
22585
22598
  };
22586
22599
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22587
22600
  "div",
@@ -22738,7 +22751,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22738
22751
  onKeyDown: (e) => {
22739
22752
  if (e.key === "Enter" || e.key === " ") {
22740
22753
  e.preventDefault();
22741
- _optionalChain([onClick, 'optionalCall', _569 => _569()]);
22754
+ _optionalChain([onClick, 'optionalCall', _572 => _572()]);
22742
22755
  }
22743
22756
  },
22744
22757
  children: [
@@ -22839,7 +22852,7 @@ var LogsList = React78.forwardRef(({
22839
22852
  log,
22840
22853
  isLast: index === logs.length - 1,
22841
22854
  showConnector,
22842
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _570 => _570(log)])
22855
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _573 => _573(log)])
22843
22856
  },
22844
22857
  log.id
22845
22858
  ))
@@ -23428,7 +23441,7 @@ function CursorPaginationSimple({
23428
23441
  {
23429
23442
  variant: "transparent",
23430
23443
  size: "icon",
23431
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _571 => _571("")]),
23444
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _574 => _574("")]),
23432
23445
  disabled: !hasPreviousPage || loading,
23433
23446
  className: "h-8 w-8",
23434
23447
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23440,7 +23453,7 @@ function CursorPaginationSimple({
23440
23453
  {
23441
23454
  variant: "transparent",
23442
23455
  size: "icon",
23443
- onClick: () => _optionalChain([onNext, 'optionalCall', _572 => _572("")]),
23456
+ onClick: () => _optionalChain([onNext, 'optionalCall', _575 => _575("")]),
23444
23457
  disabled: !hasNextPage || loading,
23445
23458
  className: "h-8 w-8",
23446
23459
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23500,7 +23513,7 @@ function TableColumnFilterDropdown({
23500
23513
  placement = "bottom-start",
23501
23514
  dropdownClassName = "min-w-[240px]"
23502
23515
  }) {
23503
- const activeCount = _optionalChain([filters, 'optionalAccess', _573 => _573[columnKey], 'optionalAccess', _574 => _574.length]) || 0;
23516
+ const activeCount = _optionalChain([filters, 'optionalAccess', _576 => _576[columnKey], 'optionalAccess', _577 => _577.length]) || 0;
23504
23517
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23505
23518
  FiltersDropdown,
23506
23519
  {
@@ -23543,7 +23556,7 @@ function TableColumnFilterDropdown({
23543
23556
  delete newFilters[columnKey];
23544
23557
  onFilterChange(newFilters);
23545
23558
  },
23546
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _575 => _575[columnKey]]) || [] },
23559
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _578 => _578[columnKey]]) || [] },
23547
23560
  placement,
23548
23561
  dropdownClassName
23549
23562
  }
@@ -23840,7 +23853,7 @@ function TableRow({
23840
23853
  const keys = column.key.split(".");
23841
23854
  let value = item;
23842
23855
  for (const key of keys) {
23843
- value = _optionalChain([value, 'optionalAccess', _576 => _576[key]]);
23856
+ value = _optionalChain([value, 'optionalAccess', _579 => _579[key]]);
23844
23857
  }
23845
23858
  if (value === null || value === void 0) {
23846
23859
  return "-";
@@ -23910,7 +23923,7 @@ function TableRow({
23910
23923
  // src/components/ui/table/table.tsx
23911
23924
 
23912
23925
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23913
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _577 => _577.length])) || Boolean(renderRowActions);
23926
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _580 => _580.length])) || Boolean(renderRowActions);
23914
23927
  const result = [...columns];
23915
23928
  if (hasActions) {
23916
23929
  const actionsColumn = {
@@ -24004,7 +24017,7 @@ function Table({
24004
24017
  return rowKey(item);
24005
24018
  }
24006
24019
  const key = item[rowKey];
24007
- return _optionalChain([key, 'optionalAccess', _578 => _578.toString, 'call', _579 => _579()]) || index.toString();
24020
+ return _optionalChain([key, 'optionalAccess', _581 => _581.toString, 'call', _582 => _582()]) || index.toString();
24008
24021
  };
24009
24022
  const getRowClassName = (item, index) => {
24010
24023
  if (typeof rowClassName === "function") {
@@ -24038,23 +24051,23 @@ function Table({
24038
24051
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
24039
24052
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
24040
24053
  const sentinelRef = _react.useRef.call(void 0, null);
24041
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _580 => _580.onLoadMore]));
24042
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _581 => _581.onLoadMore]);
24054
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _583 => _583.onLoadMore]));
24055
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _584 => _584.onLoadMore]);
24043
24056
  _react.useEffect.call(void 0, () => {
24044
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _582 => _582.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24057
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _585 => _585.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24045
24058
  const sentinel = sentinelRef.current;
24046
24059
  if (!sentinel) return;
24047
24060
  const observer = new IntersectionObserver(
24048
24061
  (entries) => {
24049
- if (_optionalChain([entries, 'access', _583 => _583[0], 'optionalAccess', _584 => _584.isIntersecting])) {
24050
- _optionalChain([onLoadMoreRef, 'access', _585 => _585.current, 'optionalCall', _586 => _586()]);
24062
+ if (_optionalChain([entries, 'access', _586 => _586[0], 'optionalAccess', _587 => _587.isIntersecting])) {
24063
+ _optionalChain([onLoadMoreRef, 'access', _588 => _588.current, 'optionalCall', _589 => _589()]);
24051
24064
  }
24052
24065
  },
24053
24066
  { rootMargin: "200px" }
24054
24067
  );
24055
24068
  observer.observe(sentinel);
24056
24069
  return () => observer.disconnect();
24057
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _587 => _587.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _588 => _588.isFetchingNextPage])]);
24070
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _590 => _590.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _591 => _591.isFetchingNextPage])]);
24058
24071
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
24059
24072
  showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
24060
24073
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -24125,7 +24138,7 @@ function Table({
24125
24138
  },
24126
24139
  getRowKey(item, index)
24127
24140
  )),
24128
- _optionalChain([infiniteScroll, 'optionalAccess', _589 => _589.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24141
+ _optionalChain([infiniteScroll, 'optionalAccess', _592 => _592.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24129
24142
  TableCardSkeleton,
24130
24143
  {
24131
24144
  columns,
@@ -24134,7 +24147,7 @@ function Table({
24134
24147
  hasChevron: Boolean(rowHref)
24135
24148
  }
24136
24149
  ),
24137
- _optionalChain([infiniteScroll, 'optionalAccess', _590 => _590.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24150
+ _optionalChain([infiniteScroll, 'optionalAccess', _593 => _593.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24138
24151
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24139
24152
  "div",
24140
24153
  {
@@ -24492,7 +24505,7 @@ function QueryReportTable({
24492
24505
  );
24493
24506
  const handleExport = () => {
24494
24507
  exportToCSV(data, columns, exportFilename);
24495
- _optionalChain([onExport, 'optionalCall', _591 => _591()]);
24508
+ _optionalChain([onExport, 'optionalCall', _594 => _594()]);
24496
24509
  };
24497
24510
  const tableMinWidth = columns.length * (columnWidth + 16);
24498
24511
  const {
@@ -24665,7 +24678,7 @@ function DataTableColumnFilter({
24665
24678
  align = "left"
24666
24679
  }) {
24667
24680
  const currentValue = column.getFilterValue();
24668
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _592 => _592.length]), () => ( 0));
24681
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _595 => _595.length]), () => ( 0));
24669
24682
  const sections = _react.useMemo.call(void 0,
24670
24683
  () => [
24671
24684
  {
@@ -24745,7 +24758,7 @@ function DataTableHeader({
24745
24758
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24746
24759
  if (header.isPlaceholder) return false;
24747
24760
  if (isLgUp) return true;
24748
- return Boolean(_optionalChain([header, 'access', _593 => _593.column, 'access', _594 => _594.columnDef, 'access', _595 => _595.meta, 'optionalAccess', _596 => _596.filter]));
24761
+ return Boolean(_optionalChain([header, 'access', _596 => _596.column, 'access', _597 => _597.columnDef, 'access', _598 => _598.meta, 'optionalAccess', _599 => _599.filter]));
24749
24762
  });
24750
24763
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24751
24764
  "div",
@@ -24775,20 +24788,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24775
24788
  if (header.isPlaceholder) return null;
24776
24789
  const column = header.column;
24777
24790
  const meta = column.columnDef.meta;
24778
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _597 => _597.filter]));
24779
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _598 => _598.align]), () => ( "left"));
24780
- const canSort = _optionalChain([meta, 'optionalAccess', _599 => _599.sortable]) === true;
24781
- const sortDir = _optionalChain([sort, 'optionalAccess', _600 => _600.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24791
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _600 => _600.filter]));
24792
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _601 => _601.align]), () => ( "left"));
24793
+ const canSort = _optionalChain([meta, 'optionalAccess', _602 => _602.sortable]) === true;
24794
+ const sortDir = _optionalChain([sort, 'optionalAccess', _603 => _603.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24782
24795
  if (!isLgUp && !hasFilter) return null;
24783
24796
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24784
24797
  "div",
24785
24798
  {
24786
24799
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24787
24800
  "flex items-stretch",
24788
- isLgUp && (_optionalChain([meta, 'optionalAccess', _601 => _601.width]) || "flex-1 min-w-0"),
24789
- _optionalChain([meta, 'optionalAccess', _602 => _602.headerClassName]),
24801
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _604 => _604.width]) || "flex-1 min-w-0"),
24802
+ _optionalChain([meta, 'optionalAccess', _605 => _605.headerClassName]),
24790
24803
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24791
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _603 => _603.hideAt]))
24804
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _606 => _606.hideAt]))
24792
24805
  ),
24793
24806
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24794
24807
  DataTableColumnFilter,
@@ -24807,7 +24820,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24807
24820
  isLgUp && alignJustify(align),
24808
24821
  canSort && "group cursor-pointer"
24809
24822
  ),
24810
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _604 => _604(column.id)]) : void 0,
24823
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _607 => _607(column.id)]) : void 0,
24811
24824
  children: [
24812
24825
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24813
24826
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24891,7 +24904,7 @@ function DataTableSkeleton({
24891
24904
  }) {
24892
24905
  const table = useDataTableContext();
24893
24906
  const columns = table.getVisibleFlatColumns();
24894
- const firstColumnId = _optionalChain([columns, 'access', _605 => _605[0], 'optionalAccess', _606 => _606.id]);
24907
+ const firstColumnId = _optionalChain([columns, 'access', _608 => _608[0], 'optionalAccess', _609 => _609.id]);
24895
24908
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24896
24909
  "div",
24897
24910
  {
@@ -24915,7 +24928,7 @@ function DataTableSkeleton({
24915
24928
  {
24916
24929
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24917
24930
  "flex flex-col justify-center shrink-0",
24918
- _optionalChain([meta, 'optionalAccess', _607 => _607.width]) || "flex-1"
24931
+ _optionalChain([meta, 'optionalAccess', _610 => _610.width]) || "flex-1"
24919
24932
  ),
24920
24933
  children: [
24921
24934
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -24961,7 +24974,7 @@ function DataTableRowImpl({
24961
24974
  (e) => {
24962
24975
  const target = e.target;
24963
24976
  if (target.closest("[data-no-row-click]")) return;
24964
- _optionalChain([onClick, 'optionalCall', _608 => _608(row.original)]);
24977
+ _optionalChain([onClick, 'optionalCall', _611 => _611(row.original)]);
24965
24978
  },
24966
24979
  [onClick, row.original]
24967
24980
  );
@@ -24999,10 +25012,10 @@ function DataTableRowImpl({
24999
25012
  {
25000
25013
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
25001
25014
  "flex flex-col overflow-hidden",
25002
- alignJustify(_optionalChain([meta, 'optionalAccess', _609 => _609.align])),
25003
- _optionalChain([meta, 'optionalAccess', _610 => _610.width]) || "flex-1 min-w-0",
25004
- _optionalChain([meta, 'optionalAccess', _611 => _611.cellClassName]),
25005
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _612 => _612.hideAt]))
25015
+ alignJustify(_optionalChain([meta, 'optionalAccess', _612 => _612.align])),
25016
+ _optionalChain([meta, 'optionalAccess', _613 => _613.width]) || "flex-1 min-w-0",
25017
+ _optionalChain([meta, 'optionalAccess', _614 => _614.cellClassName]),
25018
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _615 => _615.hideAt]))
25006
25019
  ),
25007
25020
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
25008
25021
  },
@@ -25048,7 +25061,7 @@ function DataTableBody({
25048
25061
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
25049
25062
  rows.map((row, index) => {
25050
25063
  const item = row.original;
25051
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _613 => _613(item)]), () => ( void 0));
25064
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _616 => _616(item)]), () => ( void 0));
25052
25065
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
25053
25066
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25054
25067
  DataTableRow,
@@ -25112,7 +25125,7 @@ function DataTableInfiniteFooter({
25112
25125
  if (!sentinel) return;
25113
25126
  const observer = new IntersectionObserver(
25114
25127
  (entries) => {
25115
- if (_optionalChain([entries, 'access', _614 => _614[0], 'optionalAccess', _615 => _615.isIntersecting])) onLoadMoreRef.current();
25128
+ if (_optionalChain([entries, 'access', _617 => _617[0], 'optionalAccess', _618 => _618.isIntersecting])) onLoadMoreRef.current();
25116
25129
  },
25117
25130
  { rootMargin }
25118
25131
  );
@@ -25160,7 +25173,7 @@ function DataTableRowCount({
25160
25173
  const table = useDataTableContext();
25161
25174
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
25162
25175
  if (hideWhenEmpty && count === 0) return null;
25163
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _616 => _616(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25176
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _619 => _619(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25164
25177
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25165
25178
  "span",
25166
25179
  {
@@ -25254,12 +25267,12 @@ function PhoneInput({
25254
25267
  const runValidation = _react.useCallback.call(void 0, (phone) => {
25255
25268
  if (!phone || digitCount(phone) === 0) {
25256
25269
  setIsInvalid(false);
25257
- _optionalChain([onValidationChange, 'optionalCall', _617 => _617(false)]);
25270
+ _optionalChain([onValidationChange, 'optionalCall', _620 => _620(false)]);
25258
25271
  return;
25259
25272
  }
25260
25273
  const invalid = !validatePhoneNumber(phone, countryCode);
25261
25274
  setIsInvalid(invalid);
25262
- _optionalChain([onValidationChange, 'optionalCall', _618 => _618(invalid)]);
25275
+ _optionalChain([onValidationChange, 'optionalCall', _621 => _621(invalid)]);
25263
25276
  }, [countryCode, digitCount, onValidationChange]);
25264
25277
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
25265
25278
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -25308,7 +25321,7 @@ function PhoneInput({
25308
25321
  debouncedValidation(val);
25309
25322
  } else if (digitCount(val) === 0) {
25310
25323
  setIsInvalid(false);
25311
- _optionalChain([onValidationChange, 'optionalCall', _619 => _619(false)]);
25324
+ _optionalChain([onValidationChange, 'optionalCall', _622 => _622(false)]);
25312
25325
  }
25313
25326
  }
25314
25327
  },
@@ -25415,7 +25428,7 @@ function SearchInput({
25415
25428
  if (!showHiddenTags) return;
25416
25429
  const handleClick = (e) => {
25417
25430
  const target = e.target;
25418
- if (!_optionalChain([hiddenTagsRef, 'access', _620 => _620.current, 'optionalAccess', _621 => _621.contains, 'call', _622 => _622(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _623 => _623.current, 'optionalAccess', _624 => _624.contains, 'call', _625 => _625(target)])) {
25431
+ if (!_optionalChain([hiddenTagsRef, 'access', _623 => _623.current, 'optionalAccess', _624 => _624.contains, 'call', _625 => _625(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.contains, 'call', _628 => _628(target)])) {
25419
25432
  setShowHiddenTags(false);
25420
25433
  }
25421
25434
  };
@@ -25463,10 +25476,10 @@ function SearchInput({
25463
25476
  } else {
25464
25477
  setInternalValue("");
25465
25478
  }
25466
- _optionalChain([inputRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.focus, 'call', _628 => _628()]);
25479
+ _optionalChain([inputRef, 'access', _629 => _629.current, 'optionalAccess', _630 => _630.focus, 'call', _631 => _631()]);
25467
25480
  };
25468
25481
  const handleResultClick = (result) => {
25469
- _optionalChain([onResultSelect, 'optionalCall', _629 => _629(result)]);
25482
+ _optionalChain([onResultSelect, 'optionalCall', _632 => _632(result)]);
25470
25483
  setIsOpen(false);
25471
25484
  };
25472
25485
  const handleKeyDown = (e) => {
@@ -25489,7 +25502,7 @@ function SearchInput({
25489
25502
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25490
25503
  handleResultClick(flatResults[highlightedIndex]);
25491
25504
  } else {
25492
- _optionalChain([onSubmit, 'optionalCall', _630 => _630(currentValue)]);
25505
+ _optionalChain([onSubmit, 'optionalCall', _633 => _633(currentValue)]);
25493
25506
  }
25494
25507
  break;
25495
25508
  case "Escape":
@@ -25567,7 +25580,7 @@ function SearchInput({
25567
25580
  dropdownVisible && "!border-ods-accent"
25568
25581
  ),
25569
25582
  onClick: () => {
25570
- _optionalChain([inputRef, 'access', _631 => _631.current, 'optionalAccess', _632 => _632.focus, 'call', _633 => _633()]);
25583
+ _optionalChain([inputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.focus, 'call', _636 => _636()]);
25571
25584
  setIsOpen(true);
25572
25585
  },
25573
25586
  children: [
@@ -25651,10 +25664,10 @@ function SearchInput({
25651
25664
  align: "start",
25652
25665
  onOpenAutoFocus: (e) => {
25653
25666
  e.preventDefault();
25654
- _optionalChain([inputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.focus, 'call', _636 => _636()]);
25667
+ _optionalChain([inputRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.focus, 'call', _639 => _639()]);
25655
25668
  },
25656
25669
  onInteractOutside: (e) => {
25657
- if (_optionalChain([containerRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.contains, 'call', _639 => _639(e.target)])) {
25670
+ if (_optionalChain([containerRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.contains, 'call', _642 => _642(e.target)])) {
25658
25671
  e.preventDefault();
25659
25672
  }
25660
25673
  },
@@ -25671,10 +25684,10 @@ function SearchInput({
25671
25684
  ref: hiddenTagsPopupRef,
25672
25685
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25673
25686
  style: {
25674
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.getBoundingClientRect, 'call', _642 => _642(), 'access', _643 => _643.left]), () => ( 0))) : 0
25687
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.getBoundingClientRect, 'call', _645 => _645(), 'access', _646 => _646.left]), () => ( 0))) : 0
25675
25688
  },
25676
25689
  onRemove: (value2) => {
25677
- _optionalChain([onFilterRemove, 'optionalCall', _644 => _644(value2)]);
25690
+ _optionalChain([onFilterRemove, 'optionalCall', _647 => _647(value2)]);
25678
25691
  if (hiddenCount <= 1) setShowHiddenTags(false);
25679
25692
  }
25680
25693
  }
@@ -25725,7 +25738,7 @@ function FilterListItem({
25725
25738
  }) {
25726
25739
  const handleToggle = () => {
25727
25740
  if (disabled) return;
25728
- _optionalChain([onToggle, 'optionalCall', _645 => _645(!selected)]);
25741
+ _optionalChain([onToggle, 'optionalCall', _648 => _648(!selected)]);
25729
25742
  };
25730
25743
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25731
25744
  "div",
@@ -25772,7 +25785,7 @@ function FilterListItem({
25772
25785
  CheckboxPrimitive4.Root,
25773
25786
  {
25774
25787
  checked: selected,
25775
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _646 => _646(c === true)]),
25788
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _649 => _649(c === true)]),
25776
25789
  onClick: (e) => e.stopPropagation(),
25777
25790
  disabled,
25778
25791
  "aria-label": title,
@@ -25871,7 +25884,7 @@ function TagSearchInput({
25871
25884
  if (!showHiddenTags) return;
25872
25885
  const handleClick = (e) => {
25873
25886
  const target = e.target;
25874
- if (!_optionalChain([hiddenTagsRef, 'access', _647 => _647.current, 'optionalAccess', _648 => _648.contains, 'call', _649 => _649(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.contains, 'call', _652 => _652(target)])) {
25887
+ if (!_optionalChain([hiddenTagsRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.contains, 'call', _652 => _652(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _653 => _653.current, 'optionalAccess', _654 => _654.contains, 'call', _655 => _655(target)])) {
25875
25888
  setShowHiddenTags(false);
25876
25889
  }
25877
25890
  };
@@ -25887,13 +25900,13 @@ function TagSearchInput({
25887
25900
  e.preventDefault();
25888
25901
  onSubmit(searchValue);
25889
25902
  }
25890
- _optionalChain([onKeyDown, 'optionalCall', _653 => _653(e)]);
25903
+ _optionalChain([onKeyDown, 'optionalCall', _656 => _656(e)]);
25891
25904
  };
25892
25905
  const handleClearAll = (e) => {
25893
25906
  e.stopPropagation();
25894
25907
  e.preventDefault();
25895
- _optionalChain([onClearAll, 'optionalCall', _654 => _654()]);
25896
- _optionalChain([inputRef, 'access', _655 => _655.current, 'optionalAccess', _656 => _656.focus, 'call', _657 => _657()]);
25908
+ _optionalChain([onClearAll, 'optionalCall', _657 => _657()]);
25909
+ _optionalChain([inputRef, 'access', _658 => _658.current, 'optionalAccess', _659 => _659.focus, 'call', _660 => _660()]);
25897
25910
  };
25898
25911
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25899
25912
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25910,7 +25923,7 @@ function TagSearchInput({
25910
25923
  className
25911
25924
  ),
25912
25925
  onClick: () => {
25913
- if (!disabled) _optionalChain([inputRef, 'access', _658 => _658.current, 'optionalAccess', _659 => _659.focus, 'call', _660 => _660()]);
25926
+ if (!disabled) _optionalChain([inputRef, 'access', _661 => _661.current, 'optionalAccess', _662 => _662.focus, 'call', _663 => _663()]);
25914
25927
  },
25915
25928
  children: [
25916
25929
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
@@ -25982,7 +25995,7 @@ function TagSearchInput({
25982
25995
  items: hiddenTags,
25983
25996
  disabled,
25984
25997
  style: {
25985
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _661 => _661.current, 'optionalAccess', _662 => _662.getBoundingClientRect, 'call', _663 => _663(), 'access', _664 => _664.left]), () => ( 0))) : 0
25998
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _664 => _664.current, 'optionalAccess', _665 => _665.getBoundingClientRect, 'call', _666 => _666(), 'access', _667 => _667.left]), () => ( 0))) : 0
25986
25999
  },
25987
26000
  onRemove: (value) => {
25988
26001
  onTagRemove(value);
@@ -26084,7 +26097,7 @@ function MarkdownEditor({
26084
26097
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
26085
26098
  _react.useEffect.call(void 0, () => {
26086
26099
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
26087
- if (_optionalChain([mod, 'access', _665 => _665.commands, 'optionalAccess', _666 => _666.getExtraCommands])) {
26100
+ if (_optionalChain([mod, 'access', _668 => _668.commands, 'optionalAccess', _669 => _669.getExtraCommands])) {
26088
26101
  setDefaultExtraCommands(mod.commands.getExtraCommands());
26089
26102
  }
26090
26103
  });
@@ -26118,7 +26131,7 @@ function MarkdownEditor({
26118
26131
  const isImage = file.type.startsWith("image/");
26119
26132
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
26120
26133
  insertTextAtCursor(markdown);
26121
- _optionalChain([onFileUploaded, 'optionalCall', _667 => _667(url, file.name)]);
26134
+ _optionalChain([onFileUploaded, 'optionalCall', _670 => _670(url, file.name)]);
26122
26135
  } catch (error) {
26123
26136
  console.error("File upload failed:", error);
26124
26137
  setUploadProgress("Upload failed. Please try again.");
@@ -26131,7 +26144,7 @@ function MarkdownEditor({
26131
26144
  );
26132
26145
  const handleFileInputChange = _react.useCallback.call(void 0,
26133
26146
  (e) => {
26134
- const file = _optionalChain([e, 'access', _668 => _668.target, 'access', _669 => _669.files, 'optionalAccess', _670 => _670[0]]);
26147
+ const file = _optionalChain([e, 'access', _671 => _671.target, 'access', _672 => _672.files, 'optionalAccess', _673 => _673[0]]);
26135
26148
  if (file) {
26136
26149
  handleFileUpload(file);
26137
26150
  e.target.value = "";
@@ -26142,7 +26155,7 @@ function MarkdownEditor({
26142
26155
  const handlePaste = _react.useCallback.call(void 0,
26143
26156
  (e) => {
26144
26157
  if (!onUploadFile) return;
26145
- const items = _optionalChain([e, 'access', _671 => _671.clipboardData, 'optionalAccess', _672 => _672.items]);
26158
+ const items = _optionalChain([e, 'access', _674 => _674.clipboardData, 'optionalAccess', _675 => _675.items]);
26146
26159
  if (!items) return;
26147
26160
  for (const item of items) {
26148
26161
  if (item.type.startsWith("image/")) {
@@ -26167,7 +26180,7 @@ function MarkdownEditor({
26167
26180
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
26168
26181
  icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
26169
26182
  execute: () => {
26170
- _optionalChain([fileInputRef, 'access', _673 => _673.current, 'optionalAccess', _674 => _674.click, 'call', _675 => _675()]);
26183
+ _optionalChain([fileInputRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.click, 'call', _678 => _678()]);
26171
26184
  }
26172
26185
  } : null;
26173
26186
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -26179,7 +26192,7 @@ function MarkdownEditor({
26179
26192
  const EDGE_ZONE = 60;
26180
26193
  const MAX_SCROLL_SPEED = 15;
26181
26194
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
26182
- let node = _optionalChain([el, 'optionalAccess', _676 => _676.parentElement]);
26195
+ let node = _optionalChain([el, 'optionalAccess', _679 => _679.parentElement]);
26183
26196
  while (node && node !== document.documentElement) {
26184
26197
  const { overflowY } = window.getComputedStyle(node);
26185
26198
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -26322,7 +26335,7 @@ function matchesAccept(file, accept) {
26322
26335
  });
26323
26336
  }
26324
26337
  function dragHasFiles(e) {
26325
- const types = _optionalChain([e, 'access', _677 => _677.dataTransfer, 'optionalAccess', _678 => _678.types]);
26338
+ const types = _optionalChain([e, 'access', _680 => _680.dataTransfer, 'optionalAccess', _681 => _681.types]);
26326
26339
  if (!types) return false;
26327
26340
  for (let i = 0; i < types.length; i++) {
26328
26341
  if (types[i] === "Files") return true;
@@ -26417,7 +26430,7 @@ function FileUpload({
26417
26430
  e.stopPropagation();
26418
26431
  setDragActive(false);
26419
26432
  if (disabled) return;
26420
- if (_optionalChain([e, 'access', _679 => _679.dataTransfer, 'access', _680 => _680.files, 'optionalAccess', _681 => _681.length])) {
26433
+ if (_optionalChain([e, 'access', _682 => _682.dataTransfer, 'access', _683 => _683.files, 'optionalAccess', _684 => _684.length])) {
26421
26434
  handleFiles(e.dataTransfer.files);
26422
26435
  }
26423
26436
  };
@@ -26445,7 +26458,7 @@ function FileUpload({
26445
26458
  e.preventDefault();
26446
26459
  dragCounter = 0;
26447
26460
  setDragActive(false);
26448
- if (_optionalChain([e, 'access', _682 => _682.dataTransfer, 'optionalAccess', _683 => _683.files, 'optionalAccess', _684 => _684.length])) {
26461
+ if (_optionalChain([e, 'access', _685 => _685.dataTransfer, 'optionalAccess', _686 => _686.files, 'optionalAccess', _687 => _687.length])) {
26449
26462
  handleFilesRef.current(e.dataTransfer.files);
26450
26463
  }
26451
26464
  };
@@ -26467,7 +26480,7 @@ function FileUpload({
26467
26480
  };
26468
26481
  }, [acceptWindowDrops, disabled]);
26469
26482
  const handleFileSelect = (e) => {
26470
- if (_optionalChain([e, 'access', _685 => _685.target, 'access', _686 => _686.files, 'optionalAccess', _687 => _687.length])) {
26483
+ if (_optionalChain([e, 'access', _688 => _688.target, 'access', _689 => _689.files, 'optionalAccess', _690 => _690.length])) {
26471
26484
  handleFiles(e.target.files);
26472
26485
  }
26473
26486
  };
@@ -26484,7 +26497,7 @@ function FileUpload({
26484
26497
  };
26485
26498
  const openDialog = async () => {
26486
26499
  if (disabled) return;
26487
- _optionalChain([fileInputRef, 'access', _688 => _688.current, 'optionalAccess', _689 => _689.click, 'call', _690 => _690()]);
26500
+ _optionalChain([fileInputRef, 'access', _691 => _691.current, 'optionalAccess', _692 => _692.click, 'call', _693 => _693()]);
26488
26501
  };
26489
26502
  const displayError = error || validationError || void 0;
26490
26503
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26562,7 +26575,7 @@ function FileUpload({
26562
26575
  "button",
26563
26576
  {
26564
26577
  type: "button",
26565
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _691 => _691(entry.id)]),
26578
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _694 => _694(entry.id)]),
26566
26579
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26567
26580
  "aria-label": `Remove ${entry.fileName}`,
26568
26581
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26685,7 +26698,7 @@ function ImageUploader({
26685
26698
  onChange(file);
26686
26699
  };
26687
26700
  const handleFileSelect = (e) => {
26688
- validateAndEmit(_optionalChain([e, 'access', _692 => _692.target, 'access', _693 => _693.files, 'optionalAccess', _694 => _694[0]]));
26701
+ validateAndEmit(_optionalChain([e, 'access', _695 => _695.target, 'access', _696 => _696.files, 'optionalAccess', _697 => _697[0]]));
26689
26702
  if (inputRef.current) inputRef.current.value = "";
26690
26703
  };
26691
26704
  const handleDrag = (e) => {
@@ -26700,11 +26713,11 @@ function ImageUploader({
26700
26713
  e.stopPropagation();
26701
26714
  setDragActive(false);
26702
26715
  if (!interactive) return;
26703
- validateAndEmit(_optionalChain([e, 'access', _695 => _695.dataTransfer, 'access', _696 => _696.files, 'optionalAccess', _697 => _697[0]]));
26716
+ validateAndEmit(_optionalChain([e, 'access', _698 => _698.dataTransfer, 'access', _699 => _699.files, 'optionalAccess', _700 => _700[0]]));
26704
26717
  };
26705
26718
  const openDialog = () => {
26706
26719
  if (!interactive) return;
26707
- _optionalChain([inputRef, 'access', _698 => _698.current, 'optionalAccess', _699 => _699.click, 'call', _700 => _700()]);
26720
+ _optionalChain([inputRef, 'access', _701 => _701.current, 'optionalAccess', _702 => _702.click, 'call', _703 => _703()]);
26708
26721
  };
26709
26722
  const handleRootKeyDown = (e) => {
26710
26723
  if (hasImage || !interactive) return;
@@ -26861,7 +26874,7 @@ function CompactAssigneeDropdown({
26861
26874
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26862
26875
  }, [filtered, currentAssignee]);
26863
26876
  const handleSelect = (userId) => {
26864
- const next = _optionalChain([currentAssignee, 'optionalAccess', _701 => _701.id]) === userId ? null : userId;
26877
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _704 => _704.id]) === userId ? null : userId;
26865
26878
  onAssign(next);
26866
26879
  setIsOpen(false);
26867
26880
  };
@@ -26926,7 +26939,7 @@ function CompactAssigneeDropdown({
26926
26939
  }
26927
26940
  ) }),
26928
26941
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
26929
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _702 => _702.id]) === opt.value;
26942
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _705 => _705.id]) === opt.value;
26930
26943
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26931
26944
  "button",
26932
26945
  {
@@ -26995,7 +27008,7 @@ function DefaultAssigneeDropdown({
26995
27008
  Autocomplete,
26996
27009
  {
26997
27010
  options,
26998
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _703 => _703.id]), () => ( null)),
27011
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _706 => _706.id]), () => ( null)),
26999
27012
  onChange: (val) => {
27000
27013
  onAssign(val);
27001
27014
  setIsEditing(false);
@@ -27382,14 +27395,14 @@ function TicketInfoSection({
27382
27395
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27383
27396
  SquareAvatar,
27384
27397
  {
27385
- src: _optionalChain([organization, 'optionalAccess', _704 => _704.imageSrc]),
27386
- alt: _optionalChain([organization, 'optionalAccess', _705 => _705.name]),
27387
- fallback: _optionalChain([organization, 'optionalAccess', _706 => _706.name]) || "Org",
27398
+ src: _optionalChain([organization, 'optionalAccess', _707 => _707.imageSrc]),
27399
+ alt: _optionalChain([organization, 'optionalAccess', _708 => _708.name]),
27400
+ fallback: _optionalChain([organization, 'optionalAccess', _709 => _709.name]) || "Org",
27388
27401
  size: "md",
27389
27402
  className: "shrink-0"
27390
27403
  }
27391
27404
  ),
27392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _707 => _707.name]) || "Unassigned", label: "Organization" })
27405
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _710 => _710.name]) || "Unassigned", label: "Organization" })
27393
27406
  ] }),
27394
27407
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27395
27408
  AssigneeDropdown,
@@ -27410,10 +27423,10 @@ function TicketInfoSection({
27410
27423
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27411
27424
  InfoCell2,
27412
27425
  {
27413
- value: _optionalChain([device, 'optionalAccess', _708 => _708.name]) || "Unassigned",
27426
+ value: _optionalChain([device, 'optionalAccess', _711 => _711.name]) || "Unassigned",
27414
27427
  label: "Device",
27415
- icon: _optionalChain([device, 'optionalAccess', _709 => _709.icon]),
27416
- onClick: _optionalChain([device, 'optionalAccess', _710 => _710.onClick])
27428
+ icon: _optionalChain([device, 'optionalAccess', _712 => _712.icon]),
27429
+ onClick: _optionalChain([device, 'optionalAccess', _713 => _713.onClick])
27417
27430
  }
27418
27431
  ),
27419
27432
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -28173,10 +28186,10 @@ var getContentDimensions = (config) => {
28173
28186
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
28174
28187
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
28175
28188
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
28176
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _711 => _711.mobileContentDimensions, 'optionalAccess', _712 => _712.width]))), () => ( defaultMobile.width));
28177
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _713 => _713.mobileContentDimensions, 'optionalAccess', _714 => _714.height]))), () => ( defaultMobile.height));
28178
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _715 => _715.desktopContentDimensions, 'optionalAccess', _716 => _716.width]))), () => ( defaultDesktop.width));
28179
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _717 => _717.desktopContentDimensions, 'optionalAccess', _718 => _718.height]))), () => ( defaultDesktop.height));
28189
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _714 => _714.mobileContentDimensions, 'optionalAccess', _715 => _715.width]))), () => ( defaultMobile.width));
28190
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _716 => _716.mobileContentDimensions, 'optionalAccess', _717 => _717.height]))), () => ( defaultMobile.height));
28191
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _718 => _718.desktopContentDimensions, 'optionalAccess', _719 => _719.width]))), () => ( defaultDesktop.width));
28192
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _720 => _720.desktopContentDimensions, 'optionalAccess', _721 => _721.height]))), () => ( defaultDesktop.height));
28180
28193
  return {
28181
28194
  mobile: { width: mobileWidth, height: mobileHeight },
28182
28195
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -28310,7 +28323,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
28310
28323
  const contentDimensions = getContentDimensions(config);
28311
28324
  const mobileHeight = contentDimensions.mobile.height;
28312
28325
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
28313
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _719 => _719.innerHeight]) * 0.85 || 650)}px`;
28326
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _722 => _722.innerHeight]) * 0.85 || 650)}px`;
28314
28327
  })(),
28315
28328
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
28316
28329
  const contentDimensions = getContentDimensions(config);
@@ -28415,7 +28428,7 @@ var FigmaPrototypeViewer = ({
28415
28428
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28416
28429
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28417
28430
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28418
- config.defaultSectionId || _optionalChain([config, 'access', _720 => _720.sections, 'access', _721 => _721[0], 'optionalAccess', _722 => _722.id]) || ""
28431
+ config.defaultSectionId || _optionalChain([config, 'access', _723 => _723.sections, 'access', _724 => _724[0], 'optionalAccess', _725 => _725.id]) || ""
28419
28432
  );
28420
28433
  const activeSection = externalActiveSection || internalActiveSection;
28421
28434
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28505,7 +28518,7 @@ var FigmaPrototypeViewer = ({
28505
28518
  const handleMessage = (event) => {
28506
28519
  if (event.origin !== "https://www.figma.com") return;
28507
28520
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28508
- if (_optionalChain([event, 'access', _723 => _723.data, 'optionalAccess', _724 => _724.type]) && validEvents.includes(event.data.type)) {
28521
+ if (_optionalChain([event, 'access', _726 => _726.data, 'optionalAccess', _727 => _727.type]) && validEvents.includes(event.data.type)) {
28509
28522
  const figmaEvent = event.data;
28510
28523
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28511
28524
  switch (figmaEvent.type) {
@@ -28515,19 +28528,19 @@ var FigmaPrototypeViewer = ({
28515
28528
  setIframeState("READY");
28516
28529
  break;
28517
28530
  case "PRESENTED_NODE_CHANGED":
28518
- if (_optionalChain([figmaEvent, 'access', _725 => _725.data, 'optionalAccess', _726 => _726.presentedNodeId])) {
28531
+ if (_optionalChain([figmaEvent, 'access', _728 => _728.data, 'optionalAccess', _729 => _729.presentedNodeId])) {
28519
28532
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28520
28533
  if (!isNavigating) {
28521
28534
  const matchingSection = config.sections.find((s) => {
28522
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _727 => _727.data, 'optionalAccess', _728 => _728.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _729 => _729.data, 'optionalAccess', _730 => _730.presentedNodeId]);
28523
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _731 => _731.data, 'optionalAccess', _732 => _732.presentedNodeId]) || _optionalChain([s, 'access', _733 => _733.mobileStartingNodeId, 'optionalAccess', _734 => _734.replace, 'call', _735 => _735(":", "-")]) === _optionalChain([figmaEvent, 'access', _736 => _736.data, 'optionalAccess', _737 => _737.presentedNodeId]);
28535
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _730 => _730.data, 'optionalAccess', _731 => _731.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _732 => _732.data, 'optionalAccess', _733 => _733.presentedNodeId]);
28536
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _734 => _734.data, 'optionalAccess', _735 => _735.presentedNodeId]) || _optionalChain([s, 'access', _736 => _736.mobileStartingNodeId, 'optionalAccess', _737 => _737.replace, 'call', _738 => _738(":", "-")]) === _optionalChain([figmaEvent, 'access', _739 => _739.data, 'optionalAccess', _740 => _740.presentedNodeId]);
28524
28537
  return desktopMatch || mobileMatch;
28525
28538
  });
28526
28539
  if (matchingSection && matchingSection.id !== activeSection) {
28527
28540
  if (!externalActiveSection) {
28528
28541
  setInternalActiveSection(matchingSection.id);
28529
28542
  }
28530
- _optionalChain([config, 'access', _738 => _738.onSectionChange, 'optionalCall', _739 => _739(matchingSection.id)]);
28543
+ _optionalChain([config, 'access', _741 => _741.onSectionChange, 'optionalCall', _742 => _742(matchingSection.id)]);
28531
28544
  }
28532
28545
  }
28533
28546
  }
@@ -28540,7 +28553,7 @@ var FigmaPrototypeViewer = ({
28540
28553
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28541
28554
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28542
28555
  const section = config.sections.find((s) => s.id === sectionId);
28543
- if (!section || !_optionalChain([iframeRef, 'access', _740 => _740.current, 'optionalAccess', _741 => _741.contentWindow]) || !isInitialized) {
28556
+ if (!section || !_optionalChain([iframeRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.contentWindow]) || !isInitialized) {
28544
28557
  return;
28545
28558
  }
28546
28559
  setIsNavigating(true);
@@ -28548,7 +28561,7 @@ var FigmaPrototypeViewer = ({
28548
28561
  if (!externalActiveSection) {
28549
28562
  setInternalActiveSection(sectionId);
28550
28563
  }
28551
- _optionalChain([config, 'access', _742 => _742.onSectionChange, 'optionalCall', _743 => _743(sectionId)]);
28564
+ _optionalChain([config, 'access', _745 => _745.onSectionChange, 'optionalCall', _746 => _746(sectionId)]);
28552
28565
  const command = {
28553
28566
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28554
28567
  data: { nodeId }
@@ -28868,7 +28881,7 @@ var FiltersDropdown = ({
28868
28881
  defaults[section.id] = section.defaultSelected || [];
28869
28882
  });
28870
28883
  setSelectedFilters(defaults);
28871
- _optionalChain([onReset, 'optionalCall', _744 => _744()]);
28884
+ _optionalChain([onReset, 'optionalCall', _747 => _747()]);
28872
28885
  setIsOpen(false);
28873
28886
  };
28874
28887
  const handleApply = () => {
@@ -29162,7 +29175,7 @@ function MediaGalleryManager({
29162
29175
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
29163
29176
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
29164
29177
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
29165
- const file = _optionalChain([event, 'access', _745 => _745.target, 'access', _746 => _746.files, 'optionalAccess', _747 => _747[0]]);
29178
+ const file = _optionalChain([event, 'access', _748 => _748.target, 'access', _749 => _749.files, 'optionalAccess', _750 => _750[0]]);
29166
29179
  if (!file) return;
29167
29180
  let mediaType;
29168
29181
  if (file.type.startsWith("image/")) {
@@ -29277,7 +29290,7 @@ function MediaGalleryManager({
29277
29290
  {
29278
29291
  type: "button",
29279
29292
  variant: "outline",
29280
- onClick: () => _optionalChain([fileInputRef, 'access', _748 => _748.current, 'optionalAccess', _749 => _749.click, 'call', _750 => _750()]),
29293
+ onClick: () => _optionalChain([fileInputRef, 'access', _751 => _751.current, 'optionalAccess', _752 => _752.click, 'call', _753 => _753()]),
29281
29294
  disabled: isUploading,
29282
29295
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29283
29296
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30062,7 +30075,7 @@ function ReleaseMediaManager({
30062
30075
  const fileInputRef = _react.useRef.call(void 0, null);
30063
30076
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
30064
30077
  const handleFileSelect = async (event) => {
30065
- const file = _optionalChain([event, 'access', _751 => _751.target, 'access', _752 => _752.files, 'optionalAccess', _753 => _753[0]]);
30078
+ const file = _optionalChain([event, 'access', _754 => _754.target, 'access', _755 => _755.files, 'optionalAccess', _756 => _756[0]]);
30066
30079
  if (!file) return;
30067
30080
  let mediaType;
30068
30081
  if (file.type.startsWith("image/")) {
@@ -30142,7 +30155,7 @@ function ReleaseMediaManager({
30142
30155
  {
30143
30156
  type: "button",
30144
30157
  variant: "outline",
30145
- onClick: () => _optionalChain([fileInputRef, 'access', _754 => _754.current, 'optionalAccess', _755 => _755.click, 'call', _756 => _756()]),
30158
+ onClick: () => _optionalChain([fileInputRef, 'access', _757 => _757.current, 'optionalAccess', _758 => _758.click, 'call', _759 => _759()]),
30146
30159
  disabled: uploadingIndex !== null,
30147
30160
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
30148
30161
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30355,7 +30368,7 @@ function SEOEditorPreview({
30355
30368
  const displayImage = hasOgImage || hasFeaturedImage;
30356
30369
  const handleImageUpload = async (event) => {
30357
30370
  if (!onOgImageUpload) return;
30358
- const file = _optionalChain([event, 'access', _757 => _757.target, 'access', _758 => _758.files, 'optionalAccess', _759 => _759[0]]);
30371
+ const file = _optionalChain([event, 'access', _760 => _760.target, 'access', _761 => _761.files, 'optionalAccess', _762 => _762[0]]);
30359
30372
  if (!file) return;
30360
30373
  setIsUploading(true);
30361
30374
  try {
@@ -30486,7 +30499,7 @@ function SEOEditorPreview({
30486
30499
  type: "button",
30487
30500
  variant: "outline",
30488
30501
  size: "icon",
30489
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _760 => _760.click, 'call', _761 => _761()]),
30502
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _763 => _763.click, 'call', _764 => _764()]),
30490
30503
  disabled: disabled || isUploading,
30491
30504
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30492
30505
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30509,7 +30522,7 @@ function SEOEditorPreview({
30509
30522
  "div",
30510
30523
  {
30511
30524
  className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
30512
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _762 => _762.click, 'call', _763 => _763()]),
30525
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _765 => _765.click, 'call', _766 => _766()]),
30513
30526
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
30514
30527
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30515
30528
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-ods-text-secondary font-['DM_Sans']", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -30594,7 +30607,7 @@ function SocialLinksManager({
30594
30607
  className = ""
30595
30608
  }) {
30596
30609
  const addLink = () => {
30597
- const firstPlatform = _optionalChain([platforms, 'access', _764 => _764[0], 'optionalAccess', _765 => _765.name]) || "website";
30610
+ const firstPlatform = _optionalChain([platforms, 'access', _767 => _767[0], 'optionalAccess', _768 => _768.name]) || "website";
30598
30611
  onChange([...links, { platform: firstPlatform, url: "" }]);
30599
30612
  };
30600
30613
  const removeLink = (index) => {
@@ -30606,7 +30619,7 @@ function SocialLinksManager({
30606
30619
  onChange(updated);
30607
30620
  };
30608
30621
  const getIcon = (link, platform) => {
30609
- const iconKey = _optionalChain([platform, 'optionalAccess', _766 => _766.icon_name]) || link.platform;
30622
+ const iconKey = _optionalChain([platform, 'optionalAccess', _769 => _769.icon_name]) || link.platform;
30610
30623
  const IconComponent = iconMap[iconKey];
30611
30624
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30612
30625
  };
@@ -30631,7 +30644,7 @@ function SocialLinksManager({
30631
30644
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30632
30645
  _chunkBJTOSUT4cjs.Input,
30633
30646
  {
30634
- placeholder: _optionalChain([platform, 'optionalAccess', _767 => _767.placeholder]) || "Profile URL",
30647
+ placeholder: _optionalChain([platform, 'optionalAccess', _770 => _770.placeholder]) || "Profile URL",
30635
30648
  value: link.url,
30636
30649
  onChange: (e) => updateLink(index, "url", e.target.value),
30637
30650
  onKeyDown: (e) => {
@@ -31008,7 +31021,7 @@ function VideoSourceSelector({
31008
31021
  input.accept = "video/*";
31009
31022
  input.onchange = async (e) => {
31010
31023
  const target = e.target;
31011
- const file = _optionalChain([target, 'access', _768 => _768.files, 'optionalAccess', _769 => _769[0]]);
31024
+ const file = _optionalChain([target, 'access', _771 => _771.files, 'optionalAccess', _772 => _772[0]]);
31012
31025
  if (!file) return;
31013
31026
  setIsUploading(true);
31014
31027
  setUploadProgress(0);
@@ -31338,7 +31351,7 @@ function TranscriptSummaryEditor({
31338
31351
  {
31339
31352
  id: "subtitles",
31340
31353
  value: subtitles || "",
31341
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _770 => _770(e.target.value)]),
31354
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _773 => _773(e.target.value)]),
31342
31355
  placeholder: subtitlesPlaceholder,
31343
31356
  disabled: disabled || !onSubtitlesChange,
31344
31357
  className: "h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm",
@@ -31491,7 +31504,7 @@ var AIEnrichSection = ({
31491
31504
  }) => {
31492
31505
  const hasResults = status === "success" || status === "error";
31493
31506
  const shouldDisable = disabled || !canEnrich;
31494
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _771 => _771.filter, 'call', _772 => _772((f) => !f.isFilled)]) || [];
31507
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _774 => _774.filter, 'call', _775 => _775((f) => !f.isFilled)]) || [];
31495
31508
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31496
31509
  "div",
31497
31510
  {
@@ -31529,7 +31542,7 @@ var AIEnrichSection = ({
31529
31542
  {
31530
31543
  id: "ai-enrich-custom-instructions",
31531
31544
  value: _nullishCoalesce(customInstructions, () => ( "")),
31532
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _773 => _773(e.target.value)]),
31545
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _776 => _776(e.target.value)]),
31533
31546
  placeholder: customInstructionsPlaceholder,
31534
31547
  disabled: loading,
31535
31548
  maxLength: customInstructionsMaxLength,
@@ -31658,7 +31671,7 @@ function HighlightVideoSection({
31658
31671
  input.accept = "video/*";
31659
31672
  input.onchange = async (e) => {
31660
31673
  const target = e.target;
31661
- const file = _optionalChain([target, 'access', _774 => _774.files, 'optionalAccess', _775 => _775[0]]);
31674
+ const file = _optionalChain([target, 'access', _777 => _777.files, 'optionalAccess', _778 => _778[0]]);
31662
31675
  if (!file) return;
31663
31676
  setUploadError(null);
31664
31677
  try {
@@ -32160,7 +32173,7 @@ function HighlightVideoPreview({
32160
32173
  input.accept = "video/*";
32161
32174
  input.onchange = async (e) => {
32162
32175
  const target = e.target;
32163
- const file = _optionalChain([target, 'access', _776 => _776.files, 'optionalAccess', _777 => _777[0]]);
32176
+ const file = _optionalChain([target, 'access', _779 => _779.files, 'optionalAccess', _780 => _780[0]]);
32164
32177
  if (!file) return;
32165
32178
  await onUpload(file);
32166
32179
  };
@@ -32347,7 +32360,7 @@ function HighlightVideoCombinedSection({
32347
32360
  input.accept = "video/*";
32348
32361
  input.onchange = async (e) => {
32349
32362
  const target = e.target;
32350
- const file = _optionalChain([target, 'access', _778 => _778.files, 'optionalAccess', _779 => _779[0]]);
32363
+ const file = _optionalChain([target, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]);
32351
32364
  if (!file) return;
32352
32365
  await onUpload(file);
32353
32366
  };
@@ -32644,7 +32657,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32644
32657
  return editMode ? "Set Global Permission" : "";
32645
32658
  }
32646
32659
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32647
- return _optionalChain([option, 'optionalAccess', _780 => _780.label]) || level;
32660
+ return _optionalChain([option, 'optionalAccess', _783 => _783.label]) || level;
32648
32661
  };
32649
32662
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32650
32663
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b border-ods-border flex gap-4 items-center px-4 py-3", children: [
@@ -33176,15 +33189,15 @@ function TicketCard({
33176
33189
  transform: _utilities.CSS.Transform.toString(sortable.transform),
33177
33190
  transition: sortable.transition
33178
33191
  };
33179
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _781 => _781.deviceHostnames, 'optionalAccess', _782 => _782.length]) || ticket.organizationName);
33192
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _784 => _784.deviceHostnames, 'optionalAccess', _785 => _785.length]) || ticket.organizationName);
33180
33193
  const deviceText = [
33181
- _optionalChain([ticket, 'access', _783 => _783.deviceHostnames, 'optionalAccess', _784 => _784.join, 'call', _785 => _785(", ")]),
33194
+ _optionalChain([ticket, 'access', _786 => _786.deviceHostnames, 'optionalAccess', _787 => _787.join, 'call', _788 => _788(", ")]),
33182
33195
  ticket.organizationName
33183
33196
  ].filter(Boolean).join(", ");
33184
33197
  const handleClick = (e) => {
33185
33198
  if (sortable.isDragging) e.preventDefault();
33186
33199
  };
33187
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _786 => _786.assignees, 'optionalAccess', _787 => _787.length]) || renderAssignSlot);
33200
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _789 => _789.assignees, 'optionalAccess', _790 => _790.length]) || renderAssignSlot);
33188
33201
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33189
33202
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33190
33203
  _chunkTMD5LDX4cjs.Flag02Icon,
@@ -33193,7 +33206,7 @@ function TicketCard({
33193
33206
  "aria-label": `Priority: ${ticket.priority}`
33194
33207
  }
33195
33208
  ),
33196
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _788 => _788.assignees, 'optionalAccess', _789 => _789.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33209
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _791 => _791.assignees, 'optionalAccess', _792 => _792.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33197
33210
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33198
33211
  SquareAvatar,
33199
33212
  {
@@ -33222,7 +33235,7 @@ function TicketCard({
33222
33235
  ] }),
33223
33236
  rightSection
33224
33237
  ] }),
33225
- _optionalChain([ticket, 'access', _790 => _790.tags, 'optionalAccess', _791 => _791.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33238
+ _optionalChain([ticket, 'access', _793 => _793.tags, 'optionalAccess', _794 => _794.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33226
33239
  ] });
33227
33240
  const cardClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
33228
33241
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -33382,7 +33395,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33382
33395
  const observer = new IntersectionObserver(
33383
33396
  (entries) => {
33384
33397
  if (entries.some((e) => e.isIntersecting)) {
33385
- _optionalChain([loadMoreRef, 'access', _792 => _792.current, 'optionalCall', _793 => _793(columnIdRef.current)]);
33398
+ _optionalChain([loadMoreRef, 'access', _795 => _795.current, 'optionalCall', _796 => _796(columnIdRef.current)]);
33386
33399
  }
33387
33400
  },
33388
33401
  { root, rootMargin: loadMoreRootMargin }
@@ -33411,7 +33424,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33411
33424
  {
33412
33425
  ticket: t,
33413
33426
  columnId: column.id,
33414
- href: _optionalChain([getTicketHref, 'optionalCall', _794 => _794(t.id)]),
33427
+ href: _optionalChain([getTicketHref, 'optionalCall', _797 => _797(t.id)]),
33415
33428
  renderAssignSlot,
33416
33429
  dragDisabled: column.dragDisabled
33417
33430
  },
@@ -33494,17 +33507,17 @@ function Board({
33494
33507
  const pointer = _core.pointerWithin.call(void 0, args);
33495
33508
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33496
33509
  const ticketHit = intersections.find(
33497
- (c) => _optionalChain([c, 'access', _795 => _795.data, 'optionalAccess', _796 => _796.droppableContainer, 'optionalAccess', _797 => _797.data, 'optionalAccess', _798 => _798.current, 'optionalAccess', _799 => _799.type]) === "ticket"
33510
+ (c) => _optionalChain([c, 'access', _798 => _798.data, 'optionalAccess', _799 => _799.droppableContainer, 'optionalAccess', _800 => _800.data, 'optionalAccess', _801 => _801.current, 'optionalAccess', _802 => _802.type]) === "ticket"
33498
33511
  );
33499
33512
  if (ticketHit) return [ticketHit];
33500
33513
  const columnHit = intersections.find(
33501
- (c) => _optionalChain([c, 'access', _800 => _800.data, 'optionalAccess', _801 => _801.droppableContainer, 'optionalAccess', _802 => _802.data, 'optionalAccess', _803 => _803.current, 'optionalAccess', _804 => _804.type]) === "column"
33514
+ (c) => _optionalChain([c, 'access', _803 => _803.data, 'optionalAccess', _804 => _804.droppableContainer, 'optionalAccess', _805 => _805.data, 'optionalAccess', _806 => _806.current, 'optionalAccess', _807 => _807.type]) === "column"
33502
33515
  );
33503
33516
  if (columnHit) {
33504
- const columnId = _optionalChain([columnHit, 'access', _805 => _805.data, 'optionalAccess', _806 => _806.droppableContainer, 'optionalAccess', _807 => _807.data, 'optionalAccess', _808 => _808.current, 'optionalAccess', _809 => _809.columnId]);
33517
+ const columnId = _optionalChain([columnHit, 'access', _808 => _808.data, 'optionalAccess', _809 => _809.droppableContainer, 'optionalAccess', _810 => _810.data, 'optionalAccess', _811 => _811.current, 'optionalAccess', _812 => _812.columnId]);
33505
33518
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33506
33519
  const d = c.data.current;
33507
- return _optionalChain([d, 'optionalAccess', _810 => _810.type]) === "ticket" && d.columnId === columnId;
33520
+ return _optionalChain([d, 'optionalAccess', _813 => _813.type]) === "ticket" && d.columnId === columnId;
33508
33521
  });
33509
33522
  if (ticketsInColumn.length > 0) {
33510
33523
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33529,20 +33542,20 @@ function Board({
33529
33542
  const overId = String(over.id);
33530
33543
  if (activeId === overId) return;
33531
33544
  const overData = over.data.current;
33532
- const fromColumnId = _optionalChain([locate, 'call', _811 => _811(items, activeId), 'optionalAccess', _812 => _812.columnId]);
33533
- const toColumnId = _optionalChain([overData, 'optionalAccess', _813 => _813.columnId]);
33545
+ const fromColumnId = _optionalChain([locate, 'call', _814 => _814(items, activeId), 'optionalAccess', _815 => _815.columnId]);
33546
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _816 => _816.columnId]);
33534
33547
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33535
33548
  const origin = dragOriginRef.current;
33536
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _814 => _814.fromColumnId]) === toColumnId;
33549
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _817 => _817.fromColumnId]) === toColumnId;
33537
33550
  const targetCol = items.find((c) => c.id === toColumnId);
33538
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _815 => _815.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33539
- if (_optionalChain([targetCol, 'optionalAccess', _816 => _816.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33551
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _818 => _818.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33552
+ if (_optionalChain([targetCol, 'optionalAccess', _819 => _819.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33540
33553
  setItems((prev) => {
33541
33554
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33542
33555
  const toCol = prev.find((c) => c.id === toColumnId);
33543
33556
  if (fromIndex < 0 || !toCol) return prev;
33544
33557
  let toIndex;
33545
- if (_optionalChain([overData, 'optionalAccess', _817 => _817.type]) === "column") {
33558
+ if (_optionalChain([overData, 'optionalAccess', _820 => _820.type]) === "column") {
33546
33559
  toIndex = toCol.tickets.length;
33547
33560
  } else {
33548
33561
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33584,14 +33597,14 @@ function Board({
33584
33597
  const toColumnId = located.columnId;
33585
33598
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33586
33599
  const targetCol = items.find((c) => c.id === toColumnId);
33587
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _818 => _818.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _819 => _819.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33600
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _821 => _821.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _822 => _822.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33588
33601
  setItems(columns);
33589
33602
  return;
33590
33603
  }
33591
33604
  let finalIndex = located.index;
33592
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _820 => _820.find, 'call', _821 => _821((c) => c.id === toColumnId), 'optionalAccess', _822 => _822.tickets]), () => ( []));
33605
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _823 => _823.find, 'call', _824 => _824((c) => c.id === toColumnId), 'optionalAccess', _825 => _825.tickets]), () => ( []));
33593
33606
  const overData = over.data.current;
33594
- if (_optionalChain([overData, 'optionalAccess', _823 => _823.type]) === "ticket") {
33607
+ if (_optionalChain([overData, 'optionalAccess', _826 => _826.type]) === "ticket") {
33595
33608
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33596
33609
  if (overIndex >= 0 && overIndex !== located.index) {
33597
33610
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33611,8 +33624,8 @@ function Board({
33611
33624
  ticketId: origin.ticketId,
33612
33625
  fromColumnId: origin.fromColumnId,
33613
33626
  toColumnId,
33614
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _824 => _824[finalIndex - 1], 'optionalAccess', _825 => _825.id]), () => ( null)),
33615
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _826 => _826[finalIndex + 1], 'optionalAccess', _827 => _827.id]), () => ( null))
33627
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _827 => _827[finalIndex - 1], 'optionalAccess', _828 => _828.id]), () => ( null)),
33628
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _829 => _829[finalIndex + 1], 'optionalAccess', _830 => _830.id]), () => ( null))
33616
33629
  });
33617
33630
  };
33618
33631
  const handleDragCancel = () => {
@@ -33634,8 +33647,8 @@ function Board({
33634
33647
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex h-full overflow-x-auto", className), children: items.map((column, i) => {
33635
33648
  const prev = items[i - 1];
33636
33649
  const next = items[i + 1];
33637
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _828 => _828.system]));
33638
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _829 => _829.system]));
33650
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _831 => _831.system]));
33651
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _832 => _832.system]));
33639
33652
  const showGap = i > 0 && !joinLeft;
33640
33653
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React101.Fragment, { children: [
33641
33654
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33669,7 +33682,7 @@ function locate(cols, ticketId) {
33669
33682
  return null;
33670
33683
  }
33671
33684
  function findIndexInColumn(cols, columnId, ticketId) {
33672
- return _nullishCoalesce(_optionalChain([cols, 'access', _830 => _830.find, 'call', _831 => _831((c) => c.id === columnId), 'optionalAccess', _832 => _832.tickets, 'access', _833 => _833.findIndex, 'call', _834 => _834((t) => t.id === ticketId)]), () => ( -1));
33685
+ return _nullishCoalesce(_optionalChain([cols, 'access', _833 => _833.find, 'call', _834 => _834((c) => c.id === columnId), 'optionalAccess', _835 => _835.tickets, 'access', _836 => _836.findIndex, 'call', _837 => _837((t) => t.id === ticketId)]), () => ( -1));
33673
33686
  }
33674
33687
 
33675
33688
  // src/components/features/board/types.ts
@@ -34329,4 +34342,4 @@ function canonicalize(status) {
34329
34342
 
34330
34343
 
34331
34344
  exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageListLoader = ChatMessageListLoader; exports.useDelayedFlag = useDelayedFlag; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoPlayer = VideoPlayer; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.YouTubeEmbed = YouTubeEmbed; exports.extractYouTubeId = extractYouTubeId; exports.YouTubeLinkParser = YouTubeLinkParser; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketKnowledgeBaseList = TicketKnowledgeBaseList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
34332
- //# sourceMappingURL=chunk-2MEBOTV4.cjs.map
34345
+ //# sourceMappingURL=chunk-TX2C3PJM.cjs.map